[LLVMdev] Alias in LLVM 3.0
baldrick at free.fr
Tue Feb 28 04:44:33 CST 2012
> 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?
More information about the LLVMdev