[AArch64,ELF] Restrict MOVZ/MOVK to non-PIC large code model (#70178)
[llvm-project.git] / llvm / test / CodeGen / X86 / pr2326.ll
blobc53eed31603af7ea63e6f211d7e969ac5c229584
1 ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2 ; RUN: llc < %s -mtriple=i686-- | FileCheck %s
3 ; PR2326
5 define i32 @func_59(i32 %p_60) nounwind  {
6 ; CHECK-LABEL: func_59:
7 ; CHECK:       # %bb.0: # %entry
8 ; CHECK-NEXT:    pushl %eax
9 ; CHECK-NEXT:    movl 0, %eax
10 ; CHECK-NEXT:    xorl %ecx, %ecx
11 ; CHECK-NEXT:    cmpl (%esp), %eax
12 ; CHECK-NEXT:    sete %cl
13 ; CHECK-NEXT:    pushl $0
14 ; CHECK-NEXT:    pushl %ecx
15 ; CHECK-NEXT:    calll func_15@PLT
16 entry:
17         %l_108 = alloca i32             ; <ptr> [#uses=2]
18         %tmp15 = load i32, ptr null, align 4            ; <i32> [#uses=1]
19         %tmp16 = load i32, ptr %l_108, align 4          ; <i32> [#uses=1]
20         %tmp17 = icmp eq i32 %tmp15, %tmp16             ; <i1> [#uses=1]
21         %tmp1718 = zext i1 %tmp17 to i8         ; <i8> [#uses=1]
22         %tmp19 = load i32, ptr null, align 4            ; <i32> [#uses=1]
23         %tmp20 = load i32, ptr %l_108, align 4          ; <i32> [#uses=1]
24         %tmp21 = icmp ule i32 %tmp19, %tmp20            ; <i1> [#uses=1]
25         %tmp2122 = zext i1 %tmp21 to i8         ; <i8> [#uses=1]
26         %toBool23 = icmp ne i8 %tmp1718, 0              ; <i1> [#uses=1]
27         %toBool24 = icmp ne i8 %tmp2122, 0              ; <i1> [#uses=1]
28         %tmp25 = and i1 %toBool23, %toBool24            ; <i1> [#uses=1]
29         %tmp2526 = zext i1 %tmp25 to i8         ; <i8> [#uses=1]
30         %tmp252627 = zext i8 %tmp2526 to i32            ; <i32> [#uses=1]
31         %tmp29 = call i32 (...) @func_15( i32 %tmp252627, i32 0 ) nounwind              ; <i32> [#uses=0]
32         unreachable
35 declare i32 @func_15(...)