Skip to content

Commit 6a8d894

Browse files
[CodeGen][Test] simplify callbr-asm-outputs.ll with nounwind NFC
The CFI directives add noise to the test. Remove them via nounwind fn attrs. Also remove clobbers. Reviewed By: void Differential Revision: https://reviews.llvm.org/D137596
1 parent d34dce2 commit 6a8d894

File tree

1 file changed

+8
-22
lines changed

1 file changed

+8
-22
lines changed

llvm/test/CodeGen/X86/callbr-asm-outputs.ll

Lines changed: 8 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ define i32 @test1(i32 %x) {
2121
; CHECK-NEXT: retl
2222
entry:
2323
%add = add nsw i32 %x, 4
24-
%ret = callbr i32 asm "xorl $1, $0; jmp ${2:l}", "=r,r,!i,~{dirflag},~{fpsr},~{flags}"(i32 %add)
24+
%ret = callbr i32 asm "xorl $1, $0; jmp ${2:l}", "=r,r,!i"(i32 %add)
2525
to label %normal [label %abnormal]
2626

2727
normal:
@@ -31,15 +31,11 @@ abnormal:
3131
ret i32 1
3232
}
3333

34-
define i32 @test2(i32 %out1, i32 %out2) {
34+
define i32 @test2(i32 %out1, i32 %out2) nounwind {
3535
; CHECK-LABEL: test2:
3636
; CHECK: # %bb.0: # %entry
3737
; CHECK-NEXT: pushl %edi
38-
; CHECK-NEXT: .cfi_def_cfa_offset 8
3938
; CHECK-NEXT: pushl %esi
40-
; CHECK-NEXT: .cfi_def_cfa_offset 12
41-
; CHECK-NEXT: .cfi_offset %esi, -12
42-
; CHECK-NEXT: .cfi_offset %edi, -8
4339
; CHECK-NEXT: movl {{[0-9]+}}(%esp), %edi
4440
; CHECK-NEXT: movl {{[0-9]+}}(%esp), %esi
4541
; CHECK-NEXT: movl $-1, %eax
@@ -65,26 +61,23 @@ define i32 @test2(i32 %out1, i32 %out2) {
6561
; CHECK-NEXT: # %return
6662
; CHECK-NEXT: # Label of block must be emitted
6763
; CHECK-NEXT: popl %esi
68-
; CHECK-NEXT: .cfi_def_cfa_offset 8
6964
; CHECK-NEXT: popl %edi
70-
; CHECK-NEXT: .cfi_def_cfa_offset 4
7165
; CHECK-NEXT: retl
7266
; CHECK-NEXT: .LBB1_4: # Block address taken
7367
; CHECK-NEXT: # %label_true
7468
; CHECK-NEXT: # Label of block must be emitted
75-
; CHECK-NEXT: .cfi_def_cfa_offset 12
7669
; CHECK-NEXT: movl $-2, %eax
7770
; CHECK-NEXT: jmp .LBB1_5
7871
entry:
7972
%cmp = icmp slt i32 %out1, %out2
8073
br i1 %cmp, label %if.then, label %if.else
8174

8275
if.then: ; preds = %entry
83-
%0 = callbr { i32, i32 } asm sideeffect "testl $0, $0; testl $1, $2; jne ${3:l}", "={si},={di},r,!i,!i,0,1,~{dirflag},~{fpsr},~{flags}"(i32 %out1, i32 %out1, i32 %out2)
76+
%0 = callbr { i32, i32 } asm sideeffect "testl $0, $0; testl $1, $2; jne ${3:l}", "={si},={di},r,!i,!i,0,1"(i32 %out1, i32 %out1, i32 %out2)
8477
to label %if.end [label %label_true, label %return]
8578

8679
if.else: ; preds = %entry
87-
%1 = callbr { i32, i32 } asm sideeffect "testl $0, $1; testl $2, $3; jne ${5:l}", "={si},={di},r,r,!i,!i,0,1,~{dirflag},~{fpsr},~{flags}"(i32 %out1, i32 %out2, i32 %out1, i32 %out2)
80+
%1 = callbr { i32, i32 } asm sideeffect "testl $0, $1; testl $2, $3; jne ${5:l}", "={si},={di},r,r,!i,!i,0,1"(i32 %out1, i32 %out2, i32 %out1, i32 %out2)
8881
to label %if.end [label %label_true, label %return]
8982

9083
if.end: ; preds = %if.else, %if.then
@@ -102,15 +95,11 @@ return: ; preds = %if.then, %if.else,
10295
ret i32 %retval.0
10396
}
10497

105-
define i32 @test3(i1 %cmp) {
98+
define i32 @test3(i1 %cmp) nounwind {
10699
; CHECK-LABEL: test3:
107100
; CHECK: # %bb.0: # %entry
108101
; CHECK-NEXT: pushl %edi
109-
; CHECK-NEXT: .cfi_def_cfa_offset 8
110102
; CHECK-NEXT: pushl %esi
111-
; CHECK-NEXT: .cfi_def_cfa_offset 12
112-
; CHECK-NEXT: .cfi_offset %esi, -12
113-
; CHECK-NEXT: .cfi_offset %edi, -8
114103
; CHECK-NEXT: testb $1, {{[0-9]+}}(%esp)
115104
; CHECK-NEXT: je .LBB2_3
116105
; CHECK-NEXT: # %bb.1: # %true
@@ -130,14 +119,11 @@ define i32 @test3(i1 %cmp) {
130119
; CHECK-NEXT: movl %edx, %eax
131120
; CHECK-NEXT: .LBB2_5: # %asm.fallthrough
132121
; CHECK-NEXT: popl %esi
133-
; CHECK-NEXT: .cfi_def_cfa_offset 8
134122
; CHECK-NEXT: popl %edi
135-
; CHECK-NEXT: .cfi_def_cfa_offset 4
136123
; CHECK-NEXT: retl
137124
; CHECK-NEXT: .LBB2_6: # Block address taken
138125
; CHECK-NEXT: # %indirect
139126
; CHECK-NEXT: # Label of block must be emitted
140-
; CHECK-NEXT: .cfi_def_cfa_offset 12
141127
; CHECK-NEXT: movl $42, %eax
142128
; CHECK-NEXT: jmp .LBB2_5
143129
entry:
@@ -188,13 +174,13 @@ define i32 @test4(i32 %out1, i32 %out2) {
188174
; CHECK-NEXT: movl $-2, %eax
189175
; CHECK-NEXT: jmp .LBB3_4
190176
entry:
191-
%0 = callbr { i32, i32 } asm sideeffect "testl $0, $0; testl $1, $2; jne ${3:l}", "=r,=r,r,!i,!i,~{dirflag},~{fpsr},~{flags}"(i32 %out1)
177+
%0 = callbr { i32, i32 } asm sideeffect "testl $0, $0; testl $1, $2; jne ${3:l}", "=r,=r,r,!i,!i"(i32 %out1)
192178
to label %asm.fallthrough [label %label_true, label %return]
193179

194180
asm.fallthrough: ; preds = %entry
195181
%asmresult = extractvalue { i32, i32 } %0, 0
196182
%asmresult1 = extractvalue { i32, i32 } %0, 1
197-
%1 = callbr { i32, i32 } asm sideeffect "testl $0, $1; testl $2, $3; jne ${5:l}", "=r,=r,r,r,!i,!i,~{dirflag},~{fpsr},~{flags}"(i32 %asmresult, i32 %asmresult1)
183+
%1 = callbr { i32, i32 } asm sideeffect "testl $0, $1; testl $2, $3; jne ${5:l}", "=r,=r,r,r,!i,!i"(i32 %asmresult, i32 %asmresult1)
198184
to label %asm.fallthrough2 [label %label_true, label %return]
199185

200186
asm.fallthrough2: ; preds = %asm.fallthrough
@@ -224,7 +210,7 @@ define dso_local void @test5() {
224210
; CHECK-NEXT: # Label of block must be emitted
225211
; CHECK-NEXT: retl
226212
%1 = call i32 @llvm.read_register.i32(metadata !3)
227-
%2 = callbr i32 asm "", "={esp},!i,{esp},~{dirflag},~{fpsr},~{flags}"(i32 %1)
213+
%2 = callbr i32 asm "", "={esp},!i,{esp}"(i32 %1)
228214
to label %3 [label %4]
229215

230216
3:

0 commit comments

Comments
 (0)