[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