Changeset View
Changeset View
Standalone View
Standalone View
llvm/test/CodeGen/X86/callbr-asm-outputs.ll
Show First 20 Lines • Show All 172 Lines • ▼ Show 20 Lines | |||||
; CHECK-NEXT: #APP | ; CHECK-NEXT: #APP | ||||
; CHECK-NEXT: testl %ecx, %edx | ; CHECK-NEXT: testl %ecx, %edx | ||||
; CHECK-NEXT: testl %ecx, %edx | ; CHECK-NEXT: testl %ecx, %edx | ||||
; CHECK-NEXT: jne .LBB3_4 | ; CHECK-NEXT: jne .LBB3_4 | ||||
; CHECK-NEXT: #NO_APP | ; CHECK-NEXT: #NO_APP | ||||
; CHECK-NEXT: # %bb.2: # %asm.fallthrough2 | ; CHECK-NEXT: # %bb.2: # %asm.fallthrough2 | ||||
; CHECK-NEXT: addl %edx, %ecx | ; CHECK-NEXT: addl %edx, %ecx | ||||
; CHECK-NEXT: movl %ecx, %eax | ; CHECK-NEXT: movl %ecx, %eax | ||||
; CHECK-NEXT: .LBB3_4: # Block address taken | |||||
; CHECK-NEXT: # %return | |||||
; CHECK-NEXT: # Label of block must be emitted | |||||
; CHECK-NEXT: retl | ; CHECK-NEXT: retl | ||||
; CHECK-NEXT: .LBB3_3: # Block address taken | ; CHECK-NEXT: .LBB3_3: # Block address taken | ||||
; CHECK-NEXT: # %label_true | ; CHECK-NEXT: # %label_true | ||||
; CHECK-NEXT: # Label of block must be emitted | ; CHECK-NEXT: # Label of block must be emitted | ||||
; CHECK-NEXT: movl $-2, %eax | ; CHECK-NEXT: movl $-2, %eax | ||||
; CHECK-NEXT: .LBB3_4: # Block address taken | ; CHECK-NEXT: jmp .LBB3_4 | ||||
; CHECK-NEXT: # %return | |||||
; CHECK-NEXT: # Label of block must be emitted | |||||
; CHECK-NEXT: retl | |||||
entry: | entry: | ||||
%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) | %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) | ||||
to label %asm.fallthrough [label %label_true, label %return] | to label %asm.fallthrough [label %label_true, label %return] | ||||
asm.fallthrough: ; preds = %entry | asm.fallthrough: ; preds = %entry | ||||
%asmresult = extractvalue { i32, i32 } %0, 0 | %asmresult = extractvalue { i32, i32 } %0, 0 | ||||
%asmresult1 = extractvalue { i32, i32 } %0, 1 | %asmresult1 = extractvalue { i32, i32 } %0, 1 | ||||
%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) | %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) | ||||
▲ Show 20 Lines • Show All 43 Lines • Show Last 20 Lines |