[LLVMdev] Alias in LLVM 3.0

Duncan Sands baldrick at free.fr
Tue Feb 28 02:44:33 PST 2012


Hi Richard,

> In LLVM 2.9 and LLVM 3.0, our front-end generates:
>
> @__shuffle_2f32_2u32 = alias weak <2 x i32> (<2 x i32>, <2 x i32>)* @4
>
> And the calls, before linking, look like:
>
> %call9 = call <2 x float> @__shuffle_2f32_2u32(<2 x float> %tmp7, <2 x i32>
> %tmp8) nounwind

I don't see how this is possible - it should be rejected by the verifier.
Given the above definition of @__shuffle_2f32_2u32, its type is
<2 x i32> (<2 x i32>, <2 x i32>)*.  It should therefore not be possible to
call it with <2 x float> arguments since that represents a type mismatch.

Does your IR pass the verifier?

Ciao, Duncan.



More information about the llvm-dev mailing list