Skip to content

Commit e1e3c75

Browse files
committed
Revert rG6c56cf71ee82ec3a28e0dfc2b751bd10c16929da "[DAG] FoldSetCC - add missing icmp(X,undef) -> isTrueWhenEqual case"
Need to address a missed test change
1 parent 8143307 commit e1e3c75

File tree

13 files changed

+141
-119
lines changed

13 files changed

+141
-119
lines changed

llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2519,7 +2519,7 @@ SDValue SelectionDAG::FoldSetCC(EVT VT, SDValue N1, SDValue N2,
25192519

25202520
// icmp X, X -> true/false
25212521
// icmp X, undef -> true/false because undef could be X.
2522-
if (N1.isUndef() || N2.isUndef() || N1 == N2)
2522+
if (N1 == N2)
25232523
return getBoolConstant(ISD::isTrueWhenEqual(Cond), dl, VT, OpVT);
25242524
}
25252525

llvm/test/CodeGen/AArch64/pr55178.ll

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,12 @@
77
define i1 @test14(i8 %X) {
88
; CHECK-LABEL: test14:
99
; CHECK: // %bb.0:
10-
; CHECK-NEXT: mov w0, wzr
10+
; CHECK-NEXT: mov w8, #-113
11+
; CHECK-NEXT: // kill: def $w0 killed $w0 def $x0
12+
; CHECK-NEXT: lsl w8, w8, w0
13+
; CHECK-NEXT: sxtb w8, w8
14+
; CHECK-NEXT: cmp w8, #0
15+
; CHECK-NEXT: cset w0, gt
1116
; CHECK-NEXT: ret
1217
%1 = shl i8 -113, %X
1318
%cmp = icmp slt i8 undef, %1

llvm/test/CodeGen/AMDGPU/swdev373493.ll

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,8 @@ define hidden fastcc void @bar(i32 %arg, ptr %arg1, ptr %arg2, ptr %arg3, ptr %a
1717
; CHECK-NEXT: v_mov_b32_e32 v8, v5
1818
; CHECK-NEXT: v_mov_b32_e32 v7, v4
1919
; CHECK-NEXT: v_mov_b32_e32 v6, v3
20-
; CHECK-NEXT: s_branch .LBB0_3
20+
; CHECK-NEXT: s_cmp_lt_i32 s4, 3
21+
; CHECK-NEXT: s_cbranch_scc0 .LBB0_3
2122
; CHECK-NEXT: ; %bb.1: ; %LeafBlock
2223
; CHECK-NEXT: s_cbranch_scc1 .LBB0_5
2324
; CHECK-NEXT: ; %bb.2: ; %bb7

llvm/test/CodeGen/PowerPC/p10-spill-crgt.ll

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -33,22 +33,22 @@ define dso_local fastcc void @P10_Spill_CR_GT() unnamed_addr {
3333
; CHECK-NEXT: lwz r3, 0(r3)
3434
; CHECK-NEXT: std r29, 40(r1) # 8-byte Folded Spill
3535
; CHECK-NEXT: std r30, 48(r1) # 8-byte Folded Spill
36-
; CHECK-NEXT: crxor 4*cr2+eq, 4*cr2+eq, 4*cr2+eq
3736
; CHECK-NEXT: paddi r29, 0, .LJTI0_0@PCREL, 1
3837
; CHECK-NEXT: srwi r4, r3, 4
3938
; CHECK-NEXT: srwi r3, r3, 5
4039
; CHECK-NEXT: andi. r4, r4, 1
4140
; CHECK-NEXT: li r4, 0
4241
; CHECK-NEXT: crmove 4*cr2+gt, gt
4342
; CHECK-NEXT: andi. r3, r3, 1
44-
; CHECK-NEXT: li r3, 0
4543
; CHECK-NEXT: crmove 4*cr2+lt, gt
44+
; CHECK-NEXT: cmplwi cr3, r3, 336
45+
; CHECK-NEXT: li r3, 0
4646
; CHECK-NEXT: sldi r30, r3, 2
4747
; CHECK-NEXT: b .LBB0_2
4848
; CHECK-NEXT: .LBB0_1: # %bb43
4949
; CHECK-NEXT: #
5050
; CHECK-NEXT: bl call_1@notoc
51-
; CHECK-NEXT: setnbc r3, 4*cr3+eq
51+
; CHECK-NEXT: setnbc r3, 4*cr4+eq
5252
; CHECK-NEXT: li r4, 0
5353
; CHECK-NEXT: stb r4, 0(r3)
5454
; CHECK-NEXT: li r4, 0
@@ -58,13 +58,13 @@ define dso_local fastcc void @P10_Spill_CR_GT() unnamed_addr {
5858
; CHECK-NEXT: bc 12, 4*cr2+gt, .LBB0_31
5959
; CHECK-NEXT: # %bb.3: # %bb10
6060
; CHECK-NEXT: #
61-
; CHECK-NEXT: bc 12, 4*cr2+eq, .LBB0_5
61+
; CHECK-NEXT: bgt cr3, .LBB0_5
6262
; CHECK-NEXT: # %bb.4: # %bb10
6363
; CHECK-NEXT: #
6464
; CHECK-NEXT: mr r3, r4
6565
; CHECK-NEXT: lwz r5, 0(r3)
6666
; CHECK-NEXT: rlwinm r4, r5, 0, 21, 22
67-
; CHECK-NEXT: cmpwi cr3, r4, 512
67+
; CHECK-NEXT: cmpwi cr4, r4, 512
6868
; CHECK-NEXT: lwax r4, r30, r29
6969
; CHECK-NEXT: add r4, r4, r29
7070
; CHECK-NEXT: mtctr r4
@@ -186,7 +186,7 @@ define dso_local fastcc void @P10_Spill_CR_GT() unnamed_addr {
186186
; CHECK-NEXT: mtocrf 8, r12
187187
; CHECK-NEXT: blr
188188
; CHECK-NEXT: .LBB0_32: # %bb29
189-
; CHECK-NEXT: crmove eq, 4*cr3+eq
189+
; CHECK-NEXT: crmove eq, 4*cr4+eq
190190
; CHECK-NEXT: cmpwi cr3, r5, 366
191191
; CHECK-NEXT: cmpwi cr4, r3, 0
192192
; CHECK-NEXT: li r29, 0
@@ -224,15 +224,15 @@ define dso_local fastcc void @P10_Spill_CR_GT() unnamed_addr {
224224
; CHECK-BE-NEXT: lwz r3, 0(r3)
225225
; CHECK-BE-NEXT: std r29, 120(r1) # 8-byte Folded Spill
226226
; CHECK-BE-NEXT: std r30, 128(r1) # 8-byte Folded Spill
227-
; CHECK-BE-NEXT: crxor 4*cr2+eq, 4*cr2+eq, 4*cr2+eq
228227
; CHECK-BE-NEXT: srwi r4, r3, 4
229228
; CHECK-BE-NEXT: srwi r3, r3, 5
230229
; CHECK-BE-NEXT: andi. r4, r4, 1
231230
; CHECK-BE-NEXT: li r4, 0
232231
; CHECK-BE-NEXT: crmove 4*cr2+gt, gt
233232
; CHECK-BE-NEXT: andi. r3, r3, 1
234-
; CHECK-BE-NEXT: li r3, 0
235233
; CHECK-BE-NEXT: crmove 4*cr2+lt, gt
234+
; CHECK-BE-NEXT: cmplwi cr3, r3, 336
235+
; CHECK-BE-NEXT: li r3, 0
236236
; CHECK-BE-NEXT: sldi r30, r3, 2
237237
; CHECK-BE-NEXT: addis r3, r2, .LC0@toc@ha
238238
; CHECK-BE-NEXT: ld r29, .LC0@toc@l(r3)
@@ -241,7 +241,7 @@ define dso_local fastcc void @P10_Spill_CR_GT() unnamed_addr {
241241
; CHECK-BE-NEXT: #
242242
; CHECK-BE-NEXT: bl call_1
243243
; CHECK-BE-NEXT: nop
244-
; CHECK-BE-NEXT: setnbc r3, 4*cr3+eq
244+
; CHECK-BE-NEXT: setnbc r3, 4*cr4+eq
245245
; CHECK-BE-NEXT: li r4, 0
246246
; CHECK-BE-NEXT: stb r4, 0(r3)
247247
; CHECK-BE-NEXT: li r4, 0
@@ -251,13 +251,13 @@ define dso_local fastcc void @P10_Spill_CR_GT() unnamed_addr {
251251
; CHECK-BE-NEXT: bc 12, 4*cr2+gt, .LBB0_31
252252
; CHECK-BE-NEXT: # %bb.3: # %bb10
253253
; CHECK-BE-NEXT: #
254-
; CHECK-BE-NEXT: bc 12, 4*cr2+eq, .LBB0_5
254+
; CHECK-BE-NEXT: bgt cr3, .LBB0_5
255255
; CHECK-BE-NEXT: # %bb.4: # %bb10
256256
; CHECK-BE-NEXT: #
257257
; CHECK-BE-NEXT: mr r3, r4
258258
; CHECK-BE-NEXT: lwz r5, 0(r3)
259259
; CHECK-BE-NEXT: rlwinm r4, r5, 0, 21, 22
260-
; CHECK-BE-NEXT: cmpwi cr3, r4, 512
260+
; CHECK-BE-NEXT: cmpwi cr4, r4, 512
261261
; CHECK-BE-NEXT: lwax r4, r30, r29
262262
; CHECK-BE-NEXT: add r4, r4, r29
263263
; CHECK-BE-NEXT: mtctr r4
@@ -379,7 +379,7 @@ define dso_local fastcc void @P10_Spill_CR_GT() unnamed_addr {
379379
; CHECK-BE-NEXT: mtocrf 8, r12
380380
; CHECK-BE-NEXT: blr
381381
; CHECK-BE-NEXT: .LBB0_32: # %bb29
382-
; CHECK-BE-NEXT: crmove eq, 4*cr3+eq
382+
; CHECK-BE-NEXT: crmove eq, 4*cr4+eq
383383
; CHECK-BE-NEXT: cmpwi cr3, r5, 366
384384
; CHECK-BE-NEXT: cmpwi cr4, r3, 0
385385
; CHECK-BE-NEXT: li r29, 0

llvm/test/CodeGen/PowerPC/pr45709.ll

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,14 +10,38 @@
1010
define dso_local void @_ZN1a1bEv(<4 x float> %in) local_unnamed_addr #0 align 2 {
1111
; CHECK-LABEL: _ZN1a1bEv:
1212
; CHECK: # %bb.0:
13-
; CHECK-NEXT: bc 12, 4*cr5+lt, .LBB0_4
13+
; CHECK-NEXT: bc 12, 4*cr5+lt, .LBB0_6
1414
; CHECK-NEXT: b .LBB0_1
1515
; CHECK-NEXT: .LBB0_1: # %.preheader
1616
; CHECK-NEXT: b .LBB0_2
1717
; CHECK-NEXT: .LBB0_2:
1818
; CHECK-NEXT: b .LBB0_3
1919
; CHECK-NEXT: .LBB0_3:
20+
; CHECK-NEXT: addis r3, r2, .LCPI0_0@toc@ha
21+
; CHECK-NEXT: addi r3, r3, .LCPI0_0@toc@l
22+
; CHECK-NEXT: lvx v3, 0, r3
23+
; CHECK-NEXT: vperm v2, v2, v2, v3
24+
; CHECK-NEXT: vxor v3, v3, v3
25+
; CHECK-NEXT: addi r3, r1, -48
26+
; CHECK-NEXT: stvx v3, 0, r3
27+
; CHECK-NEXT: addi r3, r1, -32
28+
; CHECK-NEXT: stvx v2, 0, r3
29+
; CHECK-NEXT: lwz r3, -48(r1)
30+
; CHECK-NEXT: lwz r4, -32(r1)
31+
; CHECK-NEXT: cmpw r4, r3
32+
; CHECK-NEXT: bc 12, gt, .LBB0_4
33+
; CHECK-NEXT: b .LBB0_5
2034
; CHECK-NEXT: .LBB0_4:
35+
; CHECK-NEXT: addi r3, r4, 0
36+
; CHECK-NEXT: .LBB0_5:
37+
; CHECK-NEXT: cmpw r3, r3
38+
; CHECK-NEXT: stw r3, -64(r1)
39+
; CHECK-NEXT: addi r3, r1, -64
40+
; CHECK-NEXT: lvx v2, 0, r3
41+
; CHECK-NEXT: addi r3, r1, -16
42+
; CHECK-NEXT: stvx v2, 0, r3
43+
; CHECK-NEXT: lfs f0, -16(r1)
44+
; CHECK-NEXT: .LBB0_6:
2145
; CHECK-NEXT: blr
2246
br i1 undef, label %7, label %1
2347

llvm/test/CodeGen/RISCV/pr64503.ll

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,8 @@
44
define i1 @f(i64 %LGV1) {
55
; CHECK-LABEL: f:
66
; CHECK: # %bb.0:
7-
; CHECK-NEXT: li a0, 1
7+
; CHECK-NEXT: sltu a0, a0, a1
8+
; CHECK-NEXT: xori a0, a0, 1
89
; CHECK-NEXT: ret
910
%B1 = xor i64 %LGV1, %LGV1
1011
%B2 = srem i64 1, %B1
@@ -16,7 +17,8 @@ define i1 @f(i64 %LGV1) {
1617
define i64 @g(ptr %A, i64 %0) {
1718
; CHECK-LABEL: g:
1819
; CHECK: # %bb.0:
19-
; CHECK-NEXT: li a0, 1
20+
; CHECK-NEXT: slt a0, a0, a2
21+
; CHECK-NEXT: xori a0, a0, 1
2022
; CHECK-NEXT: sb a0, 0(zero)
2123
; CHECK-NEXT: ret
2224
store i64 poison, ptr %A, align 4

llvm/test/CodeGen/Thumb2/ldr-str-imm12.ll

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -38,11 +38,11 @@ define ptr @Manifest(ptr %x, ptr %env, ptr %style, ptr %bthr, ptr %fthr, ptr %ta
3838
; CHECK-NEXT: popne.w {r8, r10, r11}
3939
; CHECK-NEXT: popne {r4, r5, r6, r7, pc}
4040
; CHECK-NEXT: LBB0_1: @ %bb20
41-
; CHECK-NEXT: movs r5, #1
42-
; CHECK-NEXT: cmp r5, #0
43-
; CHECK-NEXT: bne LBB0_4
41+
; CHECK-NEXT: cmp.w r0, #450
42+
; CHECK-NEXT: bge LBB0_4
4443
; CHECK-NEXT: @ %bb.2: @ %bb20
45-
; CHECK-NEXT: beq LBB0_5
44+
; CHECK-NEXT: cmp r0, #209
45+
; CHECK-NEXT: ble LBB0_5
4646
; CHECK-NEXT: @ %bb.3: @ %bb420
4747
; CHECK-NEXT: movw r5, :lower16:(L_zz_hold$non_lazy_ptr-(LPC0_0+4))
4848
; CHECK-NEXT: movt r5, :upper16:(L_zz_hold$non_lazy_ptr-(LPC0_0+4))
@@ -72,9 +72,10 @@ define ptr @Manifest(ptr %x, ptr %env, ptr %style, ptr %bthr, ptr %fthr, ptr %ta
7272
; CHECK-NEXT: bl _Manifest
7373
; CHECK-NEXT: trap
7474
; CHECK-NEXT: LBB0_4: @ %bb20
75-
; CHECK-NEXT: itt ne
76-
; CHECK-NEXT: movne r0, #0
77-
; CHECK-NEXT: cmpne r0, #0
75+
; CHECK-NEXT: cmp.w r0, #560
76+
; CHECK-NEXT: itt ge
77+
; CHECK-NEXT: movge r0, #0
78+
; CHECK-NEXT: cmpge r0, #0
7879
; CHECK-NEXT: LBB0_5: @ %bb20
7980
; CHECK-NEXT: trap
8081
entry:

llvm/test/CodeGen/WebAssembly/pr59626.ll

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -13,12 +13,12 @@ define i8 @f(ptr %0, ptr %1) {
1313
; CHECK-32-NEXT: i32.const 0
1414
; CHECK-32-NEXT: i32.store16 0
1515
; CHECK-32-NEXT: local.get 1
16-
; CHECK-32-NEXT: i32.const 5
16+
; CHECK-32-NEXT: i32.const 0
1717
; CHECK-32-NEXT: i32.store8 2
1818
; CHECK-32-NEXT: local.get 1
19-
; CHECK-32-NEXT: i32.const 769
19+
; CHECK-32-NEXT: i32.const 0
2020
; CHECK-32-NEXT: i32.store16 0
21-
; CHECK-32-NEXT: i32.const 1
21+
; CHECK-32-NEXT: i32.const 0
2222
; CHECK-32-NEXT: # fallthrough-return
2323
;
2424
; CHECK-64-LABEL: f:
@@ -31,12 +31,9 @@ define i8 @f(ptr %0, ptr %1) {
3131
; CHECK-64-NEXT: i32.const 0
3232
; CHECK-64-NEXT: i32.store16 0
3333
; CHECK-64-NEXT: local.get 1
34-
; CHECK-64-NEXT: i32.const 5
35-
; CHECK-64-NEXT: i32.store8 2
36-
; CHECK-64-NEXT: local.get 1
37-
; CHECK-64-NEXT: i32.const 769
34+
; CHECK-64-NEXT: i32.const 0
3835
; CHECK-64-NEXT: i32.store16 0
39-
; CHECK-64-NEXT: i32.const 1
36+
; CHECK-64-NEXT: i32.const 0
4037
; CHECK-64-NEXT: # fallthrough-return
4138
BB:
4239
store <3 x i8> zeroinitializer, ptr %0

llvm/test/CodeGen/X86/2012-01-10-UndefExceptionEdge.ll

Lines changed: 11 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ define void @f(ptr nocapture %arg, ptr nocapture %arg1, ptr nocapture %arg2, ptr
3434
; CHECK-NEXT: .cfi_offset %edi, -16
3535
; CHECK-NEXT: .cfi_offset %ebx, -12
3636
; CHECK-NEXT: xorl %eax, %eax
37-
; CHECK-NEXT: xorl %edi, %edi
37+
; CHECK-NEXT: movl $0, {{[-0-9]+}}(%e{{[sb]}}p) ## 4-byte Folded Spill
3838
; CHECK-NEXT: testb %al, %al
3939
; CHECK-NEXT: Ltmp0:
4040
; CHECK-NEXT: ## implicit-def: $ebx
@@ -46,16 +46,14 @@ define void @f(ptr nocapture %arg, ptr nocapture %arg1, ptr nocapture %arg2, ptr
4646
; CHECK-NEXT: testb %al, %al
4747
; CHECK-NEXT: jne LBB0_2
4848
; CHECK-NEXT: ## %bb.7: ## %bb31
49-
; CHECK-NEXT: ## implicit-def: $eax
50-
; CHECK-NEXT: ## kill: killed $eax
49+
; CHECK-NEXT: ## implicit-def: $edi
5150
; CHECK-NEXT: LBB0_8: ## %bb38
5251
; CHECK-NEXT: ## =>This Loop Header: Depth=1
5352
; CHECK-NEXT: ## Child Loop BB0_13 Depth 2
5453
; CHECK-NEXT: ## Child Loop BB0_16 Depth 3
5554
; CHECK-NEXT: ## Child Loop BB0_21 Depth 2
56-
; CHECK-NEXT: movb $1, %al
57-
; CHECK-NEXT: testb %al, %al
58-
; CHECK-NEXT: jne LBB0_9
55+
; CHECK-NEXT: cmpl %eax, %edi
56+
; CHECK-NEXT: jle LBB0_9
5957
; CHECK-NEXT: ## %bb.10: ## %bb41
6058
; CHECK-NEXT: ## in Loop: Header=BB0_8 Depth=1
6159
; CHECK-NEXT: Ltmp2:
@@ -78,17 +76,18 @@ define void @f(ptr nocapture %arg, ptr nocapture %arg1, ptr nocapture %arg2, ptr
7876
; CHECK-NEXT: ## Parent Loop BB0_8 Depth=1
7977
; CHECK-NEXT: ## => This Loop Header: Depth=2
8078
; CHECK-NEXT: ## Child Loop BB0_16 Depth 3
81-
; CHECK-NEXT: movb $1, %cl
82-
; CHECK-NEXT: testb %cl, %cl
83-
; CHECK-NEXT: jne LBB0_19
79+
; CHECK-NEXT: testl %eax, %eax
80+
; CHECK-NEXT: jns LBB0_19
8481
; CHECK-NEXT: ## %bb.14: ## %bb48
8582
; CHECK-NEXT: ## in Loop: Header=BB0_13 Depth=2
83+
; CHECK-NEXT: movb $1, %cl
84+
; CHECK-NEXT: testb %cl, %cl
8685
; CHECK-NEXT: jne LBB0_17
8786
; CHECK-NEXT: ## %bb.15: ## %bb49.preheader
8887
; CHECK-NEXT: ## in Loop: Header=BB0_13 Depth=2
8988
; CHECK-NEXT: xorl %ecx, %ecx
9089
; CHECK-NEXT: movl %esi, %edx
91-
; CHECK-NEXT: movl %edi, %ebx
90+
; CHECK-NEXT: movl {{[-0-9]+}}(%e{{[sb]}}p), %ebx ## 4-byte Reload
9291
; CHECK-NEXT: LBB0_16: ## %bb49
9392
; CHECK-NEXT: ## Parent Loop BB0_8 Depth=1
9493
; CHECK-NEXT: ## Parent Loop BB0_13 Depth=2
@@ -113,7 +112,7 @@ define void @f(ptr nocapture %arg, ptr nocapture %arg1, ptr nocapture %arg2, ptr
113112
; CHECK-NEXT: ## %bb.20: ## %bb61.preheader
114113
; CHECK-NEXT: ## in Loop: Header=BB0_8 Depth=1
115114
; CHECK-NEXT: movl %esi, %eax
116-
; CHECK-NEXT: movl %edi, %ecx
115+
; CHECK-NEXT: movl {{[-0-9]+}}(%e{{[sb]}}p), %ecx ## 4-byte Reload
117116
; CHECK-NEXT: LBB0_21: ## %bb61
118117
; CHECK-NEXT: ## Parent Loop BB0_8 Depth=1
119118
; CHECK-NEXT: ## => This Inner Loop Header: Depth=2
@@ -123,7 +122,7 @@ define void @f(ptr nocapture %arg, ptr nocapture %arg1, ptr nocapture %arg2, ptr
123122
; CHECK-NEXT: jne LBB0_21
124123
; CHECK-NEXT: LBB0_22: ## %bb67
125124
; CHECK-NEXT: ## in Loop: Header=BB0_8 Depth=1
126-
; CHECK-NEXT: decl {{[-0-9]+}}(%e{{[sb]}}p) ## 4-byte Folded Spill
125+
; CHECK-NEXT: decl %edi
127126
; CHECK-NEXT: jmp LBB0_8
128127
; CHECK-NEXT: LBB0_18: ## %bb43
129128
; CHECK-NEXT: Ltmp5:

0 commit comments

Comments
 (0)