@@ -7,8 +7,9 @@ define i1 @test_ult_trunc_add(i64 %x) {
77; X64-LABEL: test_ult_trunc_add:
88; X64: # %bb.0:
99; X64-NEXT: shrq $48, %rdi
10- ; X64-NEXT: addl $-65522, %edi # imm = 0xFFFF000E
11- ; X64-NEXT: cmpl $3, %edi
10+ ; X64-NEXT: addl $14, %edi
11+ ; X64-NEXT: movzwl %di, %eax
12+ ; X64-NEXT: cmpl $3, %eax
1213; X64-NEXT: setb %al
1314; X64-NEXT: retq
1415 %add = add i64 %x , 3940649673949184
@@ -22,8 +23,9 @@ define i1 @test_ult_add(i64 %x) {
2223; X64-LABEL: test_ult_add:
2324; X64: # %bb.0:
2425; X64-NEXT: shrq $48, %rdi
25- ; X64-NEXT: addl $-65522, %edi # imm = 0xFFFF000E
26- ; X64-NEXT: cmpl $3, %edi
26+ ; X64-NEXT: addl $14, %edi
27+ ; X64-NEXT: movzwl %di, %eax
28+ ; X64-NEXT: cmpl $3, %eax
2729; X64-NEXT: setb %al
2830; X64-NEXT: retq
2931 %add = add i64 3940649673949184 , %x
@@ -35,8 +37,9 @@ define i1 @test_ugt_trunc_add(i64 %x) {
3537; X64-LABEL: test_ugt_trunc_add:
3638; X64: # %bb.0:
3739; X64-NEXT: shrq $48, %rdi
38- ; X64-NEXT: addl $-65522, %edi # imm = 0xFFFF000E
39- ; X64-NEXT: cmpl $4, %edi
40+ ; X64-NEXT: addl $14, %edi
41+ ; X64-NEXT: movzwl %di, %eax
42+ ; X64-NEXT: cmpl $4, %eax
4043; X64-NEXT: setae %al
4144; X64-NEXT: retq
4245 %add = add i64 %x , 3940649673949184
@@ -116,7 +119,8 @@ define i32 @test_trunc_add(i64 %x) {
116119; X64-LABEL: test_trunc_add:
117120; X64: # %bb.0:
118121; X64-NEXT: shrq $48, %rdi
119- ; X64-NEXT: leal -65522(%rdi), %eax
122+ ; X64-NEXT: addl $14, %edi
123+ ; X64-NEXT: movzwl %di, %eax
120124; X64-NEXT: retq
121125 %add = add i64 %x , 3940649673949184
122126 %shr = lshr i64 %add , 48
@@ -157,7 +161,7 @@ define i64 @pr128309(i64 %x) {
157161; X64: # %bb.0: # %entry
158162; X64-NEXT: movl %edi, %eax
159163; X64-NEXT: andl $18114, %eax # imm = 0x46C2
160- ; X64-NEXT: addl $-65530 , %eax # imm = 0xFFFF0006
164+ ; X64-NEXT: addl $6 , %eax
161165; X64-NEXT: andl %edi, %eax
162166; X64-NEXT: retq
163167entry:
0 commit comments