Skip to content

Commit 3789e59

Browse files
authored
Revert "[X86][APX] Remove redundant TEST*ri instructions" (#155968)
Reverts #155586 Breaks bots, see details in #155586.
1 parent e3eb407 commit 3789e59

File tree

6 files changed

+49
-74
lines changed

6 files changed

+49
-74
lines changed

llvm/lib/Target/X86/X86InstrInfo.cpp

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4836,10 +4836,6 @@ bool X86InstrInfo::analyzeCompare(const MachineInstr &MI, Register &SrcReg,
48364836
case X86::CMP32ri:
48374837
case X86::CMP16ri:
48384838
case X86::CMP8ri:
4839-
case X86::TEST64ri32:
4840-
case X86::TEST32ri:
4841-
case X86::TEST16ri:
4842-
case X86::TEST8ri:
48434839
SrcReg = MI.getOperand(0).getReg();
48444840
SrcReg2 = 0;
48454841
if (MI.getOperand(1).isImm()) {
@@ -4941,10 +4937,6 @@ bool X86InstrInfo::isRedundantFlagInstr(const MachineInstr &FlagI,
49414937
case X86::CMP32ri:
49424938
case X86::CMP16ri:
49434939
case X86::CMP8ri:
4944-
case X86::TEST64ri32:
4945-
case X86::TEST32ri:
4946-
case X86::TEST16ri:
4947-
case X86::TEST8ri:
49484940
CASE_ND(SUB64ri32)
49494941
CASE_ND(SUB32ri)
49504942
CASE_ND(SUB16ri)

llvm/test/CodeGen/X86/2007-11-30-LoadFolding-Bug.ll

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,24 +13,25 @@ define fastcc void @mp_sqrt(i32 %n, i32 %radix, ptr %in, ptr %out, ptr %tmp1, pt
1313
; CHECK-NEXT: pushl %edi
1414
; CHECK-NEXT: pushl %esi
1515
; CHECK-NEXT: pushl %eax
16-
; CHECK-NEXT: movb $1, %al
16+
; CHECK-NEXT: movb $1, %cl
1717
; CHECK-NEXT: movl $1, %ebx
1818
; CHECK-NEXT: movl {{[0-9]+}}(%esp), %esi
1919
; CHECK-NEXT: .p2align 4
2020
; CHECK-NEXT: .LBB0_1: # %bb.i5
2121
; CHECK-NEXT: # =>This Inner Loop Header: Depth=1
22-
; CHECK-NEXT: movl %eax, %ecx
22+
; CHECK-NEXT: movl %ecx, %eax
2323
; CHECK-NEXT: addl %ebx, %ebx
24-
; CHECK-NEXT: xorl %eax, %eax
25-
; CHECK-NEXT: testb $1, %cl
24+
; CHECK-NEXT: xorl %ecx, %ecx
25+
; CHECK-NEXT: testb $1, %al
2626
; CHECK-NEXT: jne .LBB0_1
2727
; CHECK-NEXT: # %bb.2: # %mp_unexp_mp2d.exit.i
2828
; CHECK-NEXT: je .LBB0_3
2929
; CHECK-NEXT: # %bb.5: # %cond_next.i
30+
; CHECK-NEXT: testb $1, %al
3031
; CHECK-NEXT: jne .LBB0_3
3132
; CHECK-NEXT: # %bb.6: # %cond_next36.i
3233
; CHECK-NEXT: movl $0, 0
33-
; CHECK-NEXT: movzbl %cl, %ebp
34+
; CHECK-NEXT: movzbl %al, %ebp
3435
; CHECK-NEXT: andl $1, %ebp
3536
; CHECK-NEXT: xorpd %xmm0, %xmm0
3637
; CHECK-NEXT: xorl %eax, %eax

llvm/test/CodeGen/X86/2008-04-17-CoalescerBug.ll

Lines changed: 20 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ define void @_ZNK10wxDateTime6FormatEPKwRKNS_8TimeZoneE(ptr noalias sret(%struct
3838
; CHECK-NEXT: ## %bb.1: ## %bb116.i
3939
; CHECK-NEXT: je LBB0_25
4040
; CHECK-NEXT: ## %bb.2: ## %bb52.i.i
41+
; CHECK-NEXT: testb $1, %bl
4142
; CHECK-NEXT: je LBB0_25
4243
; CHECK-NEXT: ## %bb.3: ## %bb142.i
4344
; CHECK-NEXT: je LBB0_25
@@ -48,23 +49,23 @@ define void @_ZNK10wxDateTime6FormatEPKwRKNS_8TimeZoneE(ptr noalias sret(%struct
4849
; CHECK-NEXT: jmp LBB0_5
4950
; CHECK-NEXT: LBB0_21: ## %bb7806
5051
; CHECK-NEXT: ## in Loop: Header=BB0_5 Depth=1
51-
; CHECK-NEXT: Ltmp16: ## EH_LABEL
52+
; CHECK-NEXT: Ltmp16:
5253
; CHECK-NEXT: movl $0, {{[0-9]+}}(%esp)
5354
; CHECK-NEXT: movl $1, {{[0-9]+}}(%esp)
5455
; CHECK-NEXT: movl $0, (%esp)
5556
; CHECK-NEXT: calll __ZN12wxStringBase6appendEmw
56-
; CHECK-NEXT: Ltmp17: ## EH_LABEL
57+
; CHECK-NEXT: Ltmp17:
5758
; CHECK-NEXT: LBB0_5: ## %bb3261
5859
; CHECK-NEXT: ## =>This Inner Loop Header: Depth=1
5960
; CHECK-NEXT: cmpl $37, 0
6061
; CHECK-NEXT: jne LBB0_25
6162
; CHECK-NEXT: ## %bb.6: ## %bb3306
6263
; CHECK-NEXT: ## in Loop: Header=BB0_5 Depth=1
63-
; CHECK-NEXT: Ltmp0: ## EH_LABEL
64+
; CHECK-NEXT: Ltmp0:
6465
; CHECK-NEXT: movl %edi, {{[0-9]+}}(%esp)
6566
; CHECK-NEXT: movl $0, (%esp)
6667
; CHECK-NEXT: calll __ZN12wxStringBaseaSEPKw
67-
; CHECK-NEXT: Ltmp1: ## EH_LABEL
68+
; CHECK-NEXT: Ltmp1:
6869
; CHECK-NEXT: ## %bb.7: ## %bb3314
6970
; CHECK-NEXT: ## in Loop: Header=BB0_5 Depth=1
7071
; CHECK-NEXT: movl 0, %eax
@@ -88,11 +89,11 @@ define void @_ZNK10wxDateTime6FormatEPKwRKNS_8TimeZoneE(ptr noalias sret(%struct
8889
; CHECK-NEXT: je LBB0_14
8990
; CHECK-NEXT: ## %bb.13: ## %bb155.i8541
9091
; CHECK-NEXT: ## in Loop: Header=BB0_5 Depth=1
91-
; CHECK-NEXT: Ltmp4: ## EH_LABEL
92+
; CHECK-NEXT: Ltmp4:
9293
; CHECK-NEXT: movl $0, {{[0-9]+}}(%esp)
9394
; CHECK-NEXT: movl $0, (%esp)
9495
; CHECK-NEXT: calll _gmtime_r
95-
; CHECK-NEXT: Ltmp5: ## EH_LABEL
96+
; CHECK-NEXT: Ltmp5:
9697
; CHECK-NEXT: LBB0_14: ## %bb182.i8560
9798
; CHECK-NEXT: ## in Loop: Header=BB0_5 Depth=1
9899
; CHECK-NEXT: testb $1, %bl
@@ -102,7 +103,7 @@ define void @_ZNK10wxDateTime6FormatEPKwRKNS_8TimeZoneE(ptr noalias sret(%struct
102103
; CHECK-NEXT: je LBB0_18
103104
; CHECK-NEXT: ## %bb.17: ## %bb440.i8663
104105
; CHECK-NEXT: ## in Loop: Header=BB0_5 Depth=1
105-
; CHECK-NEXT: Ltmp6: ## EH_LABEL
106+
; CHECK-NEXT: Ltmp6:
106107
; CHECK-NEXT: movl L_.str4$non_lazy_ptr, %eax
107108
; CHECK-NEXT: movl %eax, {{[0-9]+}}(%esp)
108109
; CHECK-NEXT: movl L_.str33$non_lazy_ptr, %eax
@@ -112,47 +113,47 @@ define void @_ZNK10wxDateTime6FormatEPKwRKNS_8TimeZoneE(ptr noalias sret(%struct
112113
; CHECK-NEXT: movl %ebp, (%esp)
113114
; CHECK-NEXT: movl $1717, {{[0-9]+}}(%esp) ## imm = 0x6B5
114115
; CHECK-NEXT: calll __Z10wxOnAssertPKwiPKcS0_S0_
115-
; CHECK-NEXT: Ltmp7: ## EH_LABEL
116+
; CHECK-NEXT: Ltmp7:
116117
; CHECK-NEXT: jmp LBB0_18
117118
; CHECK-NEXT: LBB0_15: ## %bb187.i8591
118119
; CHECK-NEXT: ## in Loop: Header=BB0_5 Depth=1
119120
; CHECK-NEXT: jne LBB0_25
120121
; CHECK-NEXT: LBB0_18: ## %invcont5814
121122
; CHECK-NEXT: ## in Loop: Header=BB0_5 Depth=1
122-
; CHECK-NEXT: Ltmp8: ## EH_LABEL
123+
; CHECK-NEXT: Ltmp8:
123124
; CHECK-NEXT: movl $0, {{[0-9]+}}(%esp)
124125
; CHECK-NEXT: movl $0, {{[0-9]+}}(%esp)
125126
; CHECK-NEXT: movl $0, (%esp)
126127
; CHECK-NEXT: calll __ZN8wxString6FormatEPKwz
127128
; CHECK-NEXT: subl $4, %esp
128-
; CHECK-NEXT: Ltmp9: ## EH_LABEL
129+
; CHECK-NEXT: Ltmp9:
129130
; CHECK-NEXT: ## %bb.19: ## %invcont5831
130131
; CHECK-NEXT: ## in Loop: Header=BB0_5 Depth=1
131-
; CHECK-NEXT: Ltmp10: ## EH_LABEL
132+
; CHECK-NEXT: Ltmp10:
132133
; CHECK-NEXT: movl $0, {{[0-9]+}}(%esp)
133134
; CHECK-NEXT: movl $0, {{[0-9]+}}(%esp)
134135
; CHECK-NEXT: movl $0, {{[0-9]+}}(%esp)
135136
; CHECK-NEXT: movl $0, (%esp)
136137
; CHECK-NEXT: calll __ZN12wxStringBase10ConcatSelfEmPKwm
137-
; CHECK-NEXT: Ltmp11: ## EH_LABEL
138+
; CHECK-NEXT: Ltmp11:
138139
; CHECK-NEXT: jmp LBB0_5
139140
; CHECK-NEXT: LBB0_9: ## %bb5657
140-
; CHECK-NEXT: Ltmp13: ## EH_LABEL
141+
; CHECK-NEXT: Ltmp13:
141142
; CHECK-NEXT: movl {{[0-9]+}}(%esp), %eax
142143
; CHECK-NEXT: movl %eax, {{[0-9]+}}(%esp)
143144
; CHECK-NEXT: movl {{[0-9]+}}(%esp), %eax
144145
; CHECK-NEXT: movl %eax, (%esp)
145146
; CHECK-NEXT: calll __ZNK10wxDateTime12GetDayOfYearERKNS_8TimeZoneE
146-
; CHECK-NEXT: Ltmp14: ## EH_LABEL
147+
; CHECK-NEXT: Ltmp14:
147148
; CHECK-NEXT: jmp LBB0_25
148149
; CHECK-NEXT: LBB0_20: ## %bb5968
149-
; CHECK-NEXT: Ltmp2: ## EH_LABEL
150+
; CHECK-NEXT: Ltmp2:
150151
; CHECK-NEXT: movl $0, {{[0-9]+}}(%esp)
151152
; CHECK-NEXT: movl $0, {{[0-9]+}}(%esp)
152153
; CHECK-NEXT: movl $0, (%esp)
153154
; CHECK-NEXT: calll __ZN8wxString6FormatEPKwz
154155
; CHECK-NEXT: subl $4, %esp
155-
; CHECK-NEXT: Ltmp3: ## EH_LABEL
156+
; CHECK-NEXT: Ltmp3:
156157
; CHECK-NEXT: LBB0_25: ## %bb115.critedge.i
157158
; CHECK-NEXT: movl %esi, %eax
158159
; CHECK-NEXT: addl $28, %esp
@@ -162,13 +163,13 @@ define void @_ZNK10wxDateTime6FormatEPKwRKNS_8TimeZoneE(ptr noalias sret(%struct
162163
; CHECK-NEXT: popl %ebp
163164
; CHECK-NEXT: retl $4
164165
; CHECK-NEXT: LBB0_23: ## %lpad.loopexit.split-lp
165-
; CHECK-NEXT: Ltmp15: ## EH_LABEL
166+
; CHECK-NEXT: Ltmp15:
166167
; CHECK-NEXT: jmp LBB0_25
167168
; CHECK-NEXT: LBB0_24: ## %lpad8185
168-
; CHECK-NEXT: Ltmp12: ## EH_LABEL
169+
; CHECK-NEXT: Ltmp12:
169170
; CHECK-NEXT: jmp LBB0_25
170171
; CHECK-NEXT: LBB0_22: ## %lpad.loopexit
171-
; CHECK-NEXT: Ltmp18: ## EH_LABEL
172+
; CHECK-NEXT: Ltmp18:
172173
; CHECK-NEXT: jmp LBB0_25
173174
; CHECK-NEXT: Lfunc_end0:
174175
entry:

llvm/test/CodeGen/X86/apx/cf.ll

Lines changed: 0 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -229,21 +229,3 @@ entry:
229229
call void @llvm.masked.store.v1i32.p0(<1 x i32> zeroinitializer, ptr %p, i32 1, <1 x i1> %1)
230230
ret void
231231
}
232-
233-
define i64 @redundant_test(i64 %num, ptr %p1, i64 %in) {
234-
; CHECK-LABEL: redundant_test:
235-
; CHECK: # %bb.0:
236-
; CHECK-NEXT: testl $-32, %edi
237-
; CHECK-NEXT: cfcmoveq (%rsi), %rax
238-
; CHECK-NEXT: {nf} addq %rdx, %rax
239-
; CHECK-NEXT: cmovneq %rdi, %rax
240-
; CHECK-NEXT: retq
241-
%and = and i64 %num, 4294967264
242-
%cmp = icmp eq i64 %and, 0
243-
%mask = bitcast i1 %cmp to <1 x i1>
244-
%condload = tail call <1 x i64> @llvm.masked.load.v1i64.p0(ptr %p1, i32 8, <1 x i1> %mask, <1 x i64> poison)
245-
%v = bitcast <1 x i64> %condload to i64
246-
%add = add i64 %v, %in
247-
%sel = select i1 %cmp, i64 %add, i64 %num
248-
ret i64 %sel
249-
}

llvm/test/CodeGen/X86/ins_subreg_coalesce-3.ll

Lines changed: 18 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -22,45 +22,41 @@ define void @FontChange(i1 %foo) nounwind {
2222
; CHECK-LABEL: FontChange:
2323
; CHECK: # %bb.0: # %entry
2424
; CHECK-NEXT: testb $1, %dil
25-
; CHECK-NEXT: je .LBB0_12
26-
; CHECK-NEXT: # %bb.1: # %bb298
27-
; CHECK-NEXT: je .LBB0_3
28-
; CHECK-NEXT: # %bb.2: # %bb304
29-
; CHECK-NEXT: je .LBB0_4
25+
; CHECK-NEXT: je .LBB0_10
3026
; CHECK-NEXT: .p2align 4
31-
; CHECK-NEXT: .LBB0_3: # %bb366
27+
; CHECK-NEXT: .LBB0_1: # %bb366
3228
; CHECK-NEXT: # =>This Inner Loop Header: Depth=1
3329
; CHECK-NEXT: testb $1, %dil
34-
; CHECK-NEXT: jne .LBB0_3
35-
; CHECK-NEXT: .LBB0_4: # %bb428
30+
; CHECK-NEXT: jne .LBB0_1
31+
; CHECK-NEXT: # %bb.2: # %bb428
3632
; CHECK-NEXT: testb $1, %dil
37-
; CHECK-NEXT: je .LBB0_12
38-
; CHECK-NEXT: # %bb.5:
33+
; CHECK-NEXT: je .LBB0_10
34+
; CHECK-NEXT: # %bb.3:
3935
; CHECK-NEXT: cmpb $0, 0
4036
; CHECK-NEXT: .p2align 4
41-
; CHECK-NEXT: .LBB0_6: # %bb650
37+
; CHECK-NEXT: .LBB0_4: # %bb650
4238
; CHECK-NEXT: # =>This Inner Loop Header: Depth=1
43-
; CHECK-NEXT: je .LBB0_6
44-
; CHECK-NEXT: # %bb.7: # %bb662
39+
; CHECK-NEXT: je .LBB0_4
40+
; CHECK-NEXT: # %bb.5: # %bb662
4541
; CHECK-NEXT: movl 0, %eax
4642
; CHECK-NEXT: movl %eax, %ecx
4743
; CHECK-NEXT: andl $57344, %ecx # imm = 0xE000
4844
; CHECK-NEXT: cmpl $8192, %ecx # imm = 0x2000
49-
; CHECK-NEXT: jne .LBB0_12
50-
; CHECK-NEXT: # %bb.8: # %bb4884
45+
; CHECK-NEXT: jne .LBB0_10
46+
; CHECK-NEXT: # %bb.6: # %bb4884
5147
; CHECK-NEXT: andl $7168, %eax # imm = 0x1C00
5248
; CHECK-NEXT: cmpl $1024, %eax # imm = 0x400
53-
; CHECK-NEXT: jne .LBB0_12
54-
; CHECK-NEXT: # %bb.9: # %bb4932
49+
; CHECK-NEXT: jne .LBB0_10
50+
; CHECK-NEXT: # %bb.7: # %bb4932
5551
; CHECK-NEXT: testb $1, %dil
56-
; CHECK-NEXT: jne .LBB0_12
57-
; CHECK-NEXT: # %bb.10: # %bb4940
52+
; CHECK-NEXT: jne .LBB0_10
53+
; CHECK-NEXT: # %bb.8: # %bb4940
5854
; CHECK-NEXT: movl 0, %eax
5955
; CHECK-NEXT: cmpl $160, %eax
60-
; CHECK-NEXT: je .LBB0_12
61-
; CHECK-NEXT: # %bb.11: # %bb4940
56+
; CHECK-NEXT: je .LBB0_10
57+
; CHECK-NEXT: # %bb.9: # %bb4940
6258
; CHECK-NEXT: cmpl $159, %eax
63-
; CHECK-NEXT: .LBB0_12: # %bb4897
59+
; CHECK-NEXT: .LBB0_10: # %bb4897
6460
; CHECK-NEXT: retq
6561
entry:
6662
br i1 %foo, label %bb298, label %bb49

llvm/test/CodeGen/X86/pr38795.ll

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -260,6 +260,7 @@ define void @verifier_error_reduced_issue38788(i1 %cmp11) {
260260
; CHECK-NEXT: pushl %ebx
261261
; CHECK-NEXT: .cfi_def_cfa_offset 8
262262
; CHECK-NEXT: .cfi_offset %ebx, -8
263+
; CHECK-NEXT: movzbl {{[0-9]+}}(%esp), %eax
263264
; CHECK-NEXT: xorl %ecx, %ecx
264265
; CHECK-NEXT: xorl %ebx, %ebx
265266
; CHECK-NEXT: jmp .LBB1_1
@@ -271,21 +272,23 @@ define void @verifier_error_reduced_issue38788(i1 %cmp11) {
271272
; CHECK-NEXT: # in Loop: Header=BB1_1 Depth=1
272273
; CHECK-NEXT: movl %eax, %ecx
273274
; CHECK-NEXT: movl %edx, %ebx
275+
; CHECK-NEXT: movzbl {{[0-9]+}}(%esp), %eax
274276
; CHECK-NEXT: .LBB1_1: # %for.cond
275277
; CHECK-NEXT: # =>This Inner Loop Header: Depth=1
276-
; CHECK-NEXT: testb $1, {{[0-9]+}}(%esp)
278+
; CHECK-NEXT: testb $1, %al
277279
; CHECK-NEXT: je .LBB1_3
278280
; CHECK-NEXT: # %bb.2: # in Loop: Header=BB1_1 Depth=1
279281
; CHECK-NEXT: xorl %eax, %eax
280282
; CHECK-NEXT: jmp .LBB1_5
281283
; CHECK-NEXT: .p2align 4
282284
; CHECK-NEXT: .LBB1_3: # %if.end
283285
; CHECK-NEXT: # in Loop: Header=BB1_1 Depth=1
286+
; CHECK-NEXT: testb $1, %al
284287
; CHECK-NEXT: je .LBB1_4
285288
; CHECK-NEXT: # %bb.9: # %if.then13
286289
; CHECK-NEXT: # in Loop: Header=BB1_1 Depth=1
287290
; CHECK-NEXT: xorl %edx, %edx
288-
; CHECK-NEXT: testb $1, {{[0-9]+}}(%esp)
291+
; CHECK-NEXT: testb $1, %al
289292
; CHECK-NEXT: movl %ebx, %eax
290293
; CHECK-NEXT: movl $0, %ebx
291294
; CHECK-NEXT: jne .LBB1_8

0 commit comments

Comments
 (0)