X86: Reject register operands with obvious type mismatches.
[oota-llvm.git] / test / CodeGen / X86 / pr3241.ll
1 ; RUN: llc < %s -march=x86
2 ; PR3241
3
4 @g_620 = external global i32
5
6 define void @func_18(i32 %p_21) nounwind {
7 entry:
8         %t0 = call i32 @func_31(i32 %p_21) nounwind
9         %t1 = call i32 @safe_add_macro_uint32_t_u_u() nounwind
10         %t2 = icmp sgt i32 %t1, 0
11         %t3 = zext i1 %t2 to i32
12         %t4 = load i32, i32* @g_620, align 4
13         %t5 = icmp eq i32 %t3, %t4
14         %t6 = xor i32 %p_21, 1
15         %t7 = call i32 @func_55(i32 %t6) nounwind
16         br i1 %t5, label %return, label %bb
17
18 bb:
19         unreachable
20
21 return:
22         unreachable
23 }
24
25 declare i32 @func_31(i32)
26
27 declare i32 @safe_add_macro_uint32_t_u_u()
28
29 declare i32 @func_55(i32)