From 79ebc3b0dd130d759bf637c71c2a6aa039f0bd8f Mon Sep 17 00:00:00 2001 From: Nick Desaulniers Date: Tue, 11 Jan 2022 11:08:48 -0800 Subject: [PATCH] [llvm][test] rewrite callbr to use i rather than X constraint NFC In D115311, we're looking to modify clang to emit i constraints rather than X constraints for callbr's indirect destinations. Prior to doing so, update all of the existing tests in llvm/ to match. Reviewed By: void, jyknight Differential Revision: https://reviews.llvm.org/D115410 --- llvm/test/Assembler/call-arg-is-callee.ll | 2 +- llvm/test/Bitcode/callbr.ll | 6 +++--- llvm/test/Bitcode/callbr.ll.bc | Bin 1036 -> 1272 bytes llvm/test/CodeGen/AArch64/callbr-asm-label.ll | 6 +++--- llvm/test/CodeGen/AArch64/callbr-asm-obj-file.ll | 6 +++--- .../test/CodeGen/AArch64/speculation-hardening-sls.ll | 2 +- llvm/test/CodeGen/ARM/speculation-hardening-sls.ll | 2 +- llvm/test/CodeGen/PowerPC/ppc64-inlineasm-clobber.ll | 4 ++-- llvm/test/CodeGen/SystemZ/asm-20.ll | 2 +- llvm/test/CodeGen/X86/callbr-asm-bb-exports.ll | 2 +- llvm/test/CodeGen/X86/callbr-asm-blockplacement.ll | 2 +- llvm/test/CodeGen/X86/callbr-asm-branch-folding.ll | 2 +- llvm/test/CodeGen/X86/callbr-asm-destinations.ll | 2 +- llvm/test/CodeGen/X86/callbr-asm-errors.ll | 2 +- llvm/test/CodeGen/X86/callbr-asm-instr-scheduling.ll | 2 +- llvm/test/CodeGen/X86/callbr-asm-kill.mir | 2 +- llvm/test/CodeGen/X86/callbr-asm-label-addr.ll | 2 +- llvm/test/CodeGen/X86/callbr-asm-obj-file.ll | 2 +- llvm/test/CodeGen/X86/callbr-asm-outputs-pred-succ.ll | 4 ++-- llvm/test/CodeGen/X86/callbr-asm-outputs.ll | 14 +++++++------- llvm/test/CodeGen/X86/callbr-asm-phi-placement.ll | 2 +- llvm/test/CodeGen/X86/callbr-asm-sink.ll | 2 +- llvm/test/CodeGen/X86/callbr-asm.ll | 14 +++++++------- llvm/test/CodeGen/X86/callbr-codegenprepare.ll | 2 +- llvm/test/CodeGen/X86/shrinkwrap-callbr.ll | 2 +- llvm/test/CodeGen/X86/tail-dup-asm-goto.ll | 2 +- .../MemorySanitizer/msan_asm_conservative.ll | 2 +- .../CallSiteSplitting/callsite-split-callbr.ll | 8 ++++---- llvm/test/Transforms/Coroutines/coro-debug.ll | 2 +- llvm/test/Transforms/GVN/callbr-loadpre-critedge.ll | 4 ++-- llvm/test/Transforms/GVN/callbr-scalarpre-critedge.ll | 4 ++-- .../Transforms/GVN/critical-edge-split-failure.ll | 4 ++-- llvm/test/Transforms/IROutliner/illegal-callbr.ll | 4 ++-- llvm/test/Transforms/Inline/blockaddress.ll | 4 ++-- llvm/test/Transforms/Inline/callbr.ll | 4 ++-- .../Transforms/JumpThreading/callbr-edge-split.ll | 4 ++-- llvm/test/Transforms/JumpThreading/pr46857-callbr.ll | 4 ++-- llvm/test/Transforms/LICM/callbr-crash.ll | 2 +- llvm/test/Transforms/LoopDeletion/two-predecessors.ll | 4 ++-- llvm/test/Transforms/LoopRotate/callbr.ll | 4 ++-- .../callbr-critical-edge-splitting.ll | 6 +++--- .../callbr-critical-edge-splitting2.ll | 6 +++--- llvm/test/Transforms/LoopUnroll/callbr.ll | 2 +- llvm/test/Transforms/LoopUnswitch/callbr.ll | 16 ++++++++-------- llvm/test/Transforms/PGOProfile/callbr.ll | 2 +- .../SimpleLoopUnswitch/not-safe-to-clone.ll | 2 +- .../Transforms/SimplifyCFG/callbr-destinations.ll | 4 ++-- llvm/test/Verifier/callbr.ll | 10 +++++----- llvm/test/tools/llvm-diff/callbr.ll | 8 ++++---- llvm/test/tools/llvm-diff/phinode.ll | 2 +- ...unction-arguments-of-funcs-used-in-blockaddress.ll | 4 ++-- 51 files changed, 103 insertions(+), 103 deletions(-) diff --git a/llvm/test/Assembler/call-arg-is-callee.ll b/llvm/test/Assembler/call-arg-is-callee.ll index 42a9e4b..f2dd6ed 100644 --- a/llvm/test/Assembler/call-arg-is-callee.ll +++ b/llvm/test/Assembler/call-arg-is-callee.ll @@ -26,7 +26,7 @@ exception: ; verifier prevents duplicating callbr destinations. define void @callbr() { entry: - callbr i32 asm "", "=r,r,X,X"(i32 0, + callbr i32 asm "", "=r,r,i,i"(i32 0, i8 *blockaddress(@callbr, %two), i8 *blockaddress(@callbr, %three)) to label %one [label %two, label %three] diff --git a/llvm/test/Bitcode/callbr.ll b/llvm/test/Bitcode/callbr.ll index 648d2f1..f35f219 100644 --- a/llvm/test/Bitcode/callbr.ll +++ b/llvm/test/Bitcode/callbr.ll @@ -6,10 +6,10 @@ define i32 @test_asm_goto(i32 %x){ entry: -; CHECK-TYPED: callbr void asm "", "r,X"(i32 %x, i8* blockaddress(@test_asm_goto, %fail)) -; CHECK-OPAQUE: callbr void asm "", "r,X"(i32 %x, ptr blockaddress(@test_asm_goto, %fail)) +; CHECK-TYPED: callbr void asm "", "r,i"(i32 %x, i8* blockaddress(@test_asm_goto, %fail)) +; CHECK-OPAQUE: callbr void asm "", "r,i"(i32 %x, ptr blockaddress(@test_asm_goto, %fail)) ; CHECK-NEXT: to label %normal [label %fail] - callbr void asm "", "r,X"(i32 %x, i8* blockaddress(@test_asm_goto, %fail)) to label %normal [label %fail] + callbr void asm "", "r,i"(i32 %x, i8* blockaddress(@test_asm_goto, %fail)) to label %normal [label %fail] normal: ret i32 1 fail: diff --git a/llvm/test/Bitcode/callbr.ll.bc b/llvm/test/Bitcode/callbr.ll.bc index d07cba433c191c375f19113644f3532b87db033b..8827de6a1577bd1574d78134432186447d63b10f 100644 GIT binary patch delta 500 zcmeC-_`#{>V5|4q3Z{)tT-rrmNrBA51FdDHkDDp5cNH9)R%c|!C zsxVUG;8aL*V^GvqnIWL43M3@ed0LlDNN`GtQBX-~a+s;iz^u#=z{7GzP{AdbL75@V zLc@uHK}ykw&)n?xy}FC1i+_2~Sk{04$){|Yw9QA0#An+sVVVUr8V(jPs+e(zJmp|u z=r{@zoDRgs91WY989y^-w@cnW#`h+H|Lp^|4+{KG4fvlb@P7;7%M;*xY`_QPety9A z@&VtI0KOjv%8%Y8${cExz41`|jiT%`McE^YvNsfEUnt6_Da^Ir<7~Tw*>Xy=<(Y^* z1qJNo73@_U>{TA^E zjrM{B_OgohLZCJc_M(V_IfpH_Fj_BZww-dADO=`-qRgF#GItbYo+N_E7mad<5@jwd zlsN%$6XRqZW-Cs8{5cc&Cg(G|$F(xS!XOqH=u$wA5c8B>AhD9v;*$8p;@tT3 z{E~b_6FmbxgY?W21!F^_WHU2EGYhknGz&vZOUo2vOCv)|bMr(C^R&cdlN6&Qvor&P QZ%(nWY&S0ENJv=>Px# delta 275 zcmeyt*~6jcV5|4q3PvpL|_m}N-Lwf~SPXNUgc^DX;F-%m;s^wp7ZjTkF#UydJpGpi+Go`x!uP>7-%FMc;pCZtm0!}5a?!Pr~`@`b2P{t zc_@=6!f4y!Y|*k=n(;X!J3GTl2?hr4$+^sWj0}^%Fk5k+OJz8qz@O8=J=vVa-TE>k z%)D5j!v%pHA?7LNAhD9v;*$8p;@tT3{E~c2Jp(<1;<7x2^vn|7L<7sT6w9>9cUYtW D7RpII diff --git a/llvm/test/CodeGen/AArch64/callbr-asm-label.ll b/llvm/test/CodeGen/AArch64/callbr-asm-label.ll index 5a0656e..60f3846 100644 --- a/llvm/test/CodeGen/AArch64/callbr-asm-label.ll +++ b/llvm/test/CodeGen/AArch64/callbr-asm-label.ll @@ -10,7 +10,7 @@ define i32 @test1() { ; CHECK: .Ltmp0: ; CHECK: .LBB0_2: // %indirect entry: - callbr void asm sideeffect "1:\0A\09.word b, ${0:l}\0A\09", "X"(i8* blockaddress(@test1, %indirect)) + callbr void asm sideeffect "1:\0A\09.word b, ${0:l}\0A\09", "i"(i8* blockaddress(@test1, %indirect)) to label %cleanup [label %indirect] indirect: @@ -34,7 +34,7 @@ if.then: ; CHECK-NEXT: .word .Ltmp2 ; CHECK: .Ltmp2: ; CHECK-NEXT: .LBB1_3: // %if.end6 - callbr void asm sideeffect "1:\0A\09.word b, ${0:l}\0A\09", "X"(i8* blockaddress(@test2, %if.end6)) + callbr void asm sideeffect "1:\0A\09.word b, ${0:l}\0A\09", "i"(i8* blockaddress(@test2, %if.end6)) to label %if.then4 [label %if.end6] if.then4: @@ -50,7 +50,7 @@ if.end6: if.then9: ; CHECK: .Ltmp4: ; CHECK-NEXT: .LBB1_5: // %l_yes - callbr void asm sideeffect "", "X"(i8* blockaddress(@test2, %l_yes)) + callbr void asm sideeffect "", "i"(i8* blockaddress(@test2, %l_yes)) to label %if.end10 [label %l_yes] if.end10: diff --git a/llvm/test/CodeGen/AArch64/callbr-asm-obj-file.ll b/llvm/test/CodeGen/AArch64/callbr-asm-obj-file.ll index 2891143..f666000 100644 --- a/llvm/test/CodeGen/AArch64/callbr-asm-obj-file.ll +++ b/llvm/test/CodeGen/AArch64/callbr-asm-obj-file.ll @@ -20,7 +20,7 @@ define hidden i32 @test1() { br i1 %2, label %3, label %5 3: ; preds = %0 - callbr void asm sideeffect "1: nop\0A\09.quad a\0A\09b ${1:l}\0A\09.quad ${0:c}", "i,X"(i32* null, i8* blockaddress(@test1, %7)) + callbr void asm sideeffect "1: nop\0A\09.quad a\0A\09b ${1:l}\0A\09.quad ${0:c}", "i,i"(i32* null, i8* blockaddress(@test1, %7)) to label %4 [label %7] 4: ; preds = %3 @@ -55,7 +55,7 @@ define hidden i32 @test2() local_unnamed_addr { br i1 %5, label %6, label %7 6: ; preds = %3 - callbr void asm sideeffect "1: nop\0A\09.quad b\0A\09b ${1:l}\0A\09.quad ${0:c}", "i,X"(i32* null, i8* blockaddress(@test2, %7)) + callbr void asm sideeffect "1: nop\0A\09.quad b\0A\09b ${1:l}\0A\09.quad ${0:c}", "i,i"(i32* null, i8* blockaddress(@test2, %7)) to label %10 [label %7] 7: ; preds = %3 @@ -83,7 +83,7 @@ define internal i1 @test3() { br i1 %2, label %3, label %5 3: ; preds = %0 - callbr void asm sideeffect "1: nop\0A\09.quad c\0A\09b ${1:l}\0A\09.quad ${0:c}", "i,X"(i32* null, i8* blockaddress(@test3, %8)) + callbr void asm sideeffect "1: nop\0A\09.quad c\0A\09b ${1:l}\0A\09.quad ${0:c}", "i,i"(i32* null, i8* blockaddress(@test3, %8)) to label %4 [label %8] 4: ; preds = %3 diff --git a/llvm/test/CodeGen/AArch64/speculation-hardening-sls.ll b/llvm/test/CodeGen/AArch64/speculation-hardening-sls.ll index 83793f2..c88f9b2 100644 --- a/llvm/test/CodeGen/AArch64/speculation-hardening-sls.ll +++ b/llvm/test/CodeGen/AArch64/speculation-hardening-sls.ll @@ -89,7 +89,7 @@ entry: define i32 @asmgoto() { entry: ; CHECK-LABEL: asmgoto: - callbr void asm sideeffect "B $0", "X"(i8* blockaddress(@asmgoto, %d)) + callbr void asm sideeffect "B $0", "i"(i8* blockaddress(@asmgoto, %d)) to label %asm.fallthrough [label %d] ; The asm goto above produces a direct branch: ; CHECK: //APP diff --git a/llvm/test/CodeGen/ARM/speculation-hardening-sls.ll b/llvm/test/CodeGen/ARM/speculation-hardening-sls.ll index 9931538..905e31f 100644 --- a/llvm/test/CodeGen/ARM/speculation-hardening-sls.ll +++ b/llvm/test/CodeGen/ARM/speculation-hardening-sls.ll @@ -89,7 +89,7 @@ return: ; preds = %entry, %l2 define i32 @asmgoto() { entry: ; CHECK-LABEL: asmgoto: - callbr void asm sideeffect "B $0", "X"(i8* blockaddress(@asmgoto, %d)) + callbr void asm sideeffect "B $0", "i"(i8* blockaddress(@asmgoto, %d)) to label %asm.fallthrough [label %d] ; The asm goto above produces a direct branch: ; CHECK: @APP diff --git a/llvm/test/CodeGen/PowerPC/ppc64-inlineasm-clobber.ll b/llvm/test/CodeGen/PowerPC/ppc64-inlineasm-clobber.ll index 41231e5..e2fb1f8 100644 --- a/llvm/test/CodeGen/PowerPC/ppc64-inlineasm-clobber.ll +++ b/llvm/test/CodeGen/PowerPC/ppc64-inlineasm-clobber.ll @@ -111,7 +111,7 @@ define dso_local signext i32 @ClobberLR_BR(i32 signext %in) #0 { ; PPC64BE-NEXT: li r3, 0 ; PPC64BE-NEXT: b .LBB3_1 entry: - callbr void asm sideeffect "nop", "X,~{lr}"(i8* blockaddress(@ClobberLR_BR, %return_early)) + callbr void asm sideeffect "nop", "i,~{lr}"(i8* blockaddress(@ClobberLR_BR, %return_early)) to label %return [label %return_early] return_early: @@ -151,7 +151,7 @@ define dso_local signext i32 @ClobberR5_BR(i32 signext %in) #0 { ; PPC64BE-NEXT: extsw r3, r3 ; PPC64BE-NEXT: blr entry: - callbr void asm sideeffect "nop", "X,~{r5}"(i8* blockaddress(@ClobberR5_BR, %return_early)) + callbr void asm sideeffect "nop", "i,~{r5}"(i8* blockaddress(@ClobberR5_BR, %return_early)) to label %return [label %return_early] return_early: diff --git a/llvm/test/CodeGen/SystemZ/asm-20.ll b/llvm/test/CodeGen/SystemZ/asm-20.ll index e80a008..da336cf 100644 --- a/llvm/test/CodeGen/SystemZ/asm-20.ll +++ b/llvm/test/CodeGen/SystemZ/asm-20.ll @@ -4,7 +4,7 @@ define i32 @c() { entry: - callbr void asm sideeffect "j d", "X"(i8* blockaddress(@c, %d)) + callbr void asm sideeffect "j d", "i"(i8* blockaddress(@c, %d)) to label %asm.fallthrough [label %d] asm.fallthrough: ; preds = %entry diff --git a/llvm/test/CodeGen/X86/callbr-asm-bb-exports.ll b/llvm/test/CodeGen/X86/callbr-asm-bb-exports.ll index 78b5c7b..4f703d4 100644 --- a/llvm/test/CodeGen/X86/callbr-asm-bb-exports.ll +++ b/llvm/test/CodeGen/X86/callbr-asm-bb-exports.ll @@ -24,7 +24,7 @@ entry: %0 = add i32 %a, 4 %1 = add i32 %b, 1 %2 = add i32 %c, 1 - callbr void asm "xorl $0, $0; jmp ${1:l}", "r,X,~{dirflag},~{fpsr},~{flags}"(i32 %0, i8* blockaddress(@test, %fail)) to label %normal [label %fail] + callbr void asm "xorl $0, $0; jmp ${1:l}", "r,i,~{dirflag},~{fpsr},~{flags}"(i32 %0, i8* blockaddress(@test, %fail)) to label %normal [label %fail] normal: ret i32 %1 diff --git a/llvm/test/CodeGen/X86/callbr-asm-blockplacement.ll b/llvm/test/CodeGen/X86/callbr-asm-blockplacement.ll index fc3303f..1d0cdb3 100644 --- a/llvm/test/CodeGen/X86/callbr-asm-blockplacement.ll +++ b/llvm/test/CodeGen/X86/callbr-asm-blockplacement.ll @@ -85,7 +85,7 @@ bb8: ; preds = %bb8, %bb5 bb15: ; preds = %bb8 %tmp16 = getelementptr [0 x %struct.wibble], [0 x %struct.wibble]* @global, i64 0, i64 %tmp4, i32 2 store i8* %tmp9, i8** %tmp16 - callbr void asm sideeffect "", "X"(i8* blockaddress(@foo, %bb18)) + callbr void asm sideeffect "", "i"(i8* blockaddress(@foo, %bb18)) to label %bb17 [label %bb18] bb17: ; preds = %bb15 diff --git a/llvm/test/CodeGen/X86/callbr-asm-branch-folding.ll b/llvm/test/CodeGen/X86/callbr-asm-branch-folding.ll index 00b0e33..024b6c6 100644 --- a/llvm/test/CodeGen/X86/callbr-asm-branch-folding.ll +++ b/llvm/test/CodeGen/X86/callbr-asm-branch-folding.ll @@ -118,7 +118,7 @@ if.end12: ; preds = %if.end8 br i1 %tobool13, label %if.else, label %if.then14 if.then14: ; preds = %if.end12 - callbr void asm sideeffect "", "X,~{dirflag},~{fpsr},~{flags}"(i8* blockaddress(@n, %if.then20.critedge)) + callbr void asm sideeffect "", "i,~{dirflag},~{fpsr},~{flags}"(i8* blockaddress(@n, %if.then20.critedge)) to label %cleanup [label %if.then20.critedge] if.then20.critedge: ; preds = %if.then14 diff --git a/llvm/test/CodeGen/X86/callbr-asm-destinations.ll b/llvm/test/CodeGen/X86/callbr-asm-destinations.ll index 91f0f2d..15cc751 100644 --- a/llvm/test/CodeGen/X86/callbr-asm-destinations.ll +++ b/llvm/test/CodeGen/X86/callbr-asm-destinations.ll @@ -8,7 +8,7 @@ define i32 @test(i32 %a) { entry: %0 = add i32 %a, 4 - callbr void asm "xorl $0, $0; jmp ${1:l}", "r,X,~{dirflag},~{fpsr},~{flags}"(i32 %0, i8* blockaddress(@test, %fail)) to label %fail [label %fail] + callbr void asm "xorl $0, $0; jmp ${1:l}", "r,i,~{dirflag},~{fpsr},~{flags}"(i32 %0, i8* blockaddress(@test, %fail)) to label %fail [label %fail] fail: ret i32 1 diff --git a/llvm/test/CodeGen/X86/callbr-asm-errors.ll b/llvm/test/CodeGen/X86/callbr-asm-errors.ll index 5569e3c..8f263bf 100644 --- a/llvm/test/CodeGen/X86/callbr-asm-errors.ll +++ b/llvm/test/CodeGen/X86/callbr-asm-errors.ll @@ -8,7 +8,7 @@ define i32 @test(i32 %a) { entry: %0 = add i32 %a, 4 - callbr void asm "xorl $0, $0; jmp ${1:l}", "r,X,X,~{dirflag},~{fpsr},~{flags}"(i32 %0, i8* blockaddress(@test, %fail), i8* blockaddress(@test, %fail)) to label %normal [label %fail, label %fail] + callbr void asm "xorl $0, $0; jmp ${1:l}", "r,i,i,~{dirflag},~{fpsr},~{flags}"(i32 %0, i8* blockaddress(@test, %fail), i8* blockaddress(@test, %fail)) to label %normal [label %fail, label %fail] normal: ret i32 %0 diff --git a/llvm/test/CodeGen/X86/callbr-asm-instr-scheduling.ll b/llvm/test/CodeGen/X86/callbr-asm-instr-scheduling.ll index 9e9acc7..347c28d 100644 --- a/llvm/test/CodeGen/X86/callbr-asm-instr-scheduling.ll +++ b/llvm/test/CodeGen/X86/callbr-asm-instr-scheduling.ll @@ -49,7 +49,7 @@ entry: %shr = lshr i64 %addr, %sh_prom %and = and i64 %shr, 511 %arrayidx = getelementptr %struct.pgd_t, %struct.pgd_t* %2, i64 %and - callbr void asm sideeffect "1: jmp 6f\0A2:\0A.skip -(((5f-4f) - (2b-1b)) > 0) * ((5f-4f) - (2b-1b)),0x90\0A3:\0A.section .altinstructions,\22a\22\0A .long 1b - .\0A .long 4f - .\0A .word ${1:P}\0A .byte 3b - 1b\0A .byte 5f - 4f\0A .byte 3b - 2b\0A.previous\0A.section .altinstr_replacement,\22ax\22\0A4: jmp ${5:l}\0A5:\0A.previous\0A.section .altinstructions,\22a\22\0A .long 1b - .\0A .long 0\0A .word ${0:P}\0A .byte 3b - 1b\0A .byte 0\0A .byte 0\0A.previous\0A.section .altinstr_aux,\22ax\22\0A6:\0A testb $2,$3\0A jnz ${4:l}\0A jmp ${5:l}\0A.previous\0A", "i,i,i,*m,X,X,~{dirflag},~{fpsr},~{flags}"(i16 528, i32 117, i32 1, i8* elementtype(i8) getelementptr inbounds (%struct.cpuinfo_x86, %struct.cpuinfo_x86* @boot_cpu_data, i64 0, i32 12, i32 1, i64 58), i8* blockaddress(@early_ioremap_pmd, %if.end.i), i8* blockaddress(@early_ioremap_pmd, %if.then.i)) + callbr void asm sideeffect "1: jmp 6f\0A2:\0A.skip -(((5f-4f) - (2b-1b)) > 0) * ((5f-4f) - (2b-1b)),0x90\0A3:\0A.section .altinstructions,\22a\22\0A .long 1b - .\0A .long 4f - .\0A .word ${1:P}\0A .byte 3b - 1b\0A .byte 5f - 4f\0A .byte 3b - 2b\0A.previous\0A.section .altinstr_replacement,\22ax\22\0A4: jmp ${5:l}\0A5:\0A.previous\0A.section .altinstructions,\22a\22\0A .long 1b - .\0A .long 0\0A .word ${0:P}\0A .byte 3b - 1b\0A .byte 0\0A .byte 0\0A.previous\0A.section .altinstr_aux,\22ax\22\0A6:\0A testb $2,$3\0A jnz ${4:l}\0A jmp ${5:l}\0A.previous\0A", "i,i,i,*m,i,i,~{dirflag},~{fpsr},~{flags}"(i16 528, i32 117, i32 1, i8* elementtype(i8) getelementptr inbounds (%struct.cpuinfo_x86, %struct.cpuinfo_x86* @boot_cpu_data, i64 0, i32 12, i32 1, i64 58), i8* blockaddress(@early_ioremap_pmd, %if.end.i), i8* blockaddress(@early_ioremap_pmd, %if.then.i)) to label %_static_cpu_has.exit.thread.i [label %if.end.i, label %if.then.i] _static_cpu_has.exit.thread.i: ; preds = %entry diff --git a/llvm/test/CodeGen/X86/callbr-asm-kill.mir b/llvm/test/CodeGen/X86/callbr-asm-kill.mir index 969ca69..9bb03ae 100644 --- a/llvm/test/CodeGen/X86/callbr-asm-kill.mir +++ b/llvm/test/CodeGen/X86/callbr-asm-kill.mir @@ -21,7 +21,7 @@ %a = phi i8* [ %arg, %entry ], [ %b, %loop ] %b = load i8*, i8** %mem, align 8 call void @foo(i8* %a) - callbr void asm sideeffect "", "*m,X"(i8* elementtype(i8) %b, i8* blockaddress(@test1, %loop)) + callbr void asm sideeffect "", "*m,i"(i8* elementtype(i8) %b, i8* blockaddress(@test1, %loop)) to label %end [label %loop] end: ; preds = %loop diff --git a/llvm/test/CodeGen/X86/callbr-asm-label-addr.ll b/llvm/test/CodeGen/X86/callbr-asm-label-addr.ll index 70d3235..86f2fb8 100644 --- a/llvm/test/CodeGen/X86/callbr-asm-label-addr.ll +++ b/llvm/test/CodeGen/X86/callbr-asm-label-addr.ll @@ -10,7 +10,7 @@ define i32 @test1(i32 %x) { ; CHECK-NEXT: .Ltmp0: ; CHECK-NEXT: # %bb.2: # %baz entry: - callbr void asm sideeffect ".quad ${0:l}\0A\09.quad ${1:l}", "i,X,~{dirflag},~{fpsr},~{flags}"(i8* blockaddress(@test1, %baz), i8* blockaddress(@test1, %bar)) + callbr void asm sideeffect ".quad ${0:l}\0A\09.quad ${1:l}", "i,i,~{dirflag},~{fpsr},~{flags}"(i8* blockaddress(@test1, %baz), i8* blockaddress(@test1, %bar)) to label %asm.fallthrough [label %bar] asm.fallthrough: diff --git a/llvm/test/CodeGen/X86/callbr-asm-obj-file.ll b/llvm/test/CodeGen/X86/callbr-asm-obj-file.ll index 938eabf..11845c3 100644 --- a/llvm/test/CodeGen/X86/callbr-asm-obj-file.ll +++ b/llvm/test/CodeGen/X86/callbr-asm-obj-file.ll @@ -8,7 +8,7 @@ define void @test1() { entry: - callbr void asm sideeffect "je ${0:l}", "X,~{dirflag},~{fpsr},~{flags}"(i8* blockaddress(@test1, %a.b.normal.jump)) + callbr void asm sideeffect "je ${0:l}", "i,~{dirflag},~{fpsr},~{flags}"(i8* blockaddress(@test1, %a.b.normal.jump)) to label %asm.fallthrough [label %a.b.normal.jump] asm.fallthrough: diff --git a/llvm/test/CodeGen/X86/callbr-asm-outputs-pred-succ.ll b/llvm/test/CodeGen/X86/callbr-asm-outputs-pred-succ.ll index 91c5def..1b949d7 100644 --- a/llvm/test/CodeGen/X86/callbr-asm-outputs-pred-succ.ll +++ b/llvm/test/CodeGen/X86/callbr-asm-outputs-pred-succ.ll @@ -32,12 +32,12 @@ ; Function Attrs: nounwind uwtable define dso_local i32 @main(i32 %0, i8** nocapture readnone %1) #0 { - %3 = callbr i32 asm "jmp ${1:l}", "=r,X,~{dirflag},~{fpsr},~{flags}"(i8* blockaddress(@main, %11)) #3 + %3 = callbr i32 asm "jmp ${1:l}", "=r,i,~{dirflag},~{fpsr},~{flags}"(i8* blockaddress(@main, %11)) #3 to label %4 [label %11] 4: ; preds = %2 %5 = tail call i32 (i8*, ...) @printf(i8* nonnull dereferenceable(1) getelementptr inbounds ([26 x i8], [26 x i8]* @.str, i64 0, i64 0), i32 %3) - %6 = callbr i32 asm "jmp ${1:l}", "=r,X,~{dirflag},~{fpsr},~{flags}"(i8* blockaddress(@main, %7)) #3 + %6 = callbr i32 asm "jmp ${1:l}", "=r,i,~{dirflag},~{fpsr},~{flags}"(i8* blockaddress(@main, %7)) #3 to label %9 [label %7] 7: ; preds = %4 diff --git a/llvm/test/CodeGen/X86/callbr-asm-outputs.ll b/llvm/test/CodeGen/X86/callbr-asm-outputs.ll index 277d8e9..d2955fe 100644 --- a/llvm/test/CodeGen/X86/callbr-asm-outputs.ll +++ b/llvm/test/CodeGen/X86/callbr-asm-outputs.ll @@ -20,7 +20,7 @@ define i32 @test1(i32 %x) { ; CHECK-NEXT: retl entry: %add = add nsw i32 %x, 4 - %ret = callbr i32 asm "xorl $1, $0; jmp ${2:l}", "=r,r,X,~{dirflag},~{fpsr},~{flags}"(i32 %add, i8* blockaddress(@test1, %abnormal)) + %ret = callbr i32 asm "xorl $1, $0; jmp ${2:l}", "=r,r,i,~{dirflag},~{fpsr},~{flags}"(i32 %add, i8* blockaddress(@test1, %abnormal)) to label %normal [label %abnormal] normal: @@ -77,11 +77,11 @@ entry: br i1 %cmp, label %if.then, label %if.else if.then: ; preds = %entry - %0 = callbr { i32, i32 } asm sideeffect "testl $0, $0; testl $1, $2; jne ${3:l}", "={si},={di},r,X,X,0,1,~{dirflag},~{fpsr},~{flags}"(i32 %out1, i8* blockaddress(@test2, %label_true), i8* blockaddress(@test2, %return), i32 %out1, i32 %out2) + %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, i8* blockaddress(@test2, %label_true), i8* blockaddress(@test2, %return), i32 %out1, i32 %out2) to label %if.end [label %label_true, label %return] if.else: ; preds = %entry - %1 = callbr { i32, i32 } asm sideeffect "testl $0, $1; testl $2, $3; jne ${5:l}", "={si},={di},r,r,X,X,0,1,~{dirflag},~{fpsr},~{flags}"(i32 %out1, i32 %out2, i8* blockaddress(@test2, %label_true), i8* blockaddress(@test2, %return), i32 %out1, i32 %out2) + %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, i8* blockaddress(@test2, %label_true), i8* blockaddress(@test2, %return), i32 %out1, i32 %out2) to label %if.end [label %label_true, label %return] if.end: ; preds = %if.else, %if.then @@ -140,10 +140,10 @@ entry: br i1 %cmp, label %true, label %false true: - %0 = callbr { i32, i32 } asm sideeffect ".word $0, $1", "={si},={di},X" (i8* blockaddress(@test3, %indirect)) to label %asm.fallthrough [label %indirect] + %0 = callbr { i32, i32 } asm sideeffect ".word $0, $1", "={si},={di},i" (i8* blockaddress(@test3, %indirect)) to label %asm.fallthrough [label %indirect] false: - %1 = callbr { i32, i32 } asm sideeffect ".word $0, $1", "={ax},={dx},X" (i8* blockaddress(@test3, %indirect)) to label %asm.fallthrough [label %indirect] + %1 = callbr { i32, i32 } asm sideeffect ".word $0, $1", "={ax},={dx},i" (i8* blockaddress(@test3, %indirect)) to label %asm.fallthrough [label %indirect] asm.fallthrough: %vals = phi { i32, i32 } [ %0, %true ], [ %1, %false ] @@ -182,13 +182,13 @@ define i32 @test4(i32 %out1, i32 %out2) { ; CHECK-NEXT: .LBB3_4: # %return ; CHECK-NEXT: retl entry: - %0 = callbr { i32, i32 } asm sideeffect "testl $0, $0; testl $1, $2; jne ${3:l}", "=r,=r,r,X,X,~{dirflag},~{fpsr},~{flags}"(i32 %out1, i8* blockaddress(@test4, %label_true), i8* blockaddress(@test4, %return)) + %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, i8* blockaddress(@test4, %label_true), i8* blockaddress(@test4, %return)) to label %asm.fallthrough [label %label_true, label %return] asm.fallthrough: ; preds = %entry %asmresult = extractvalue { i32, i32 } %0, 0 %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,X,X,~{dirflag},~{fpsr},~{flags}"(i32 %asmresult, i32 %asmresult1, i8* blockaddress(@test4, %label_true), i8* blockaddress(@test4, %return)) + %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, i8* blockaddress(@test4, %label_true), i8* blockaddress(@test4, %return)) to label %asm.fallthrough2 [label %label_true, label %return] asm.fallthrough2: ; preds = %asm.fallthrough diff --git a/llvm/test/CodeGen/X86/callbr-asm-phi-placement.ll b/llvm/test/CodeGen/X86/callbr-asm-phi-placement.ll index 2c2d9f9..7faccb7 100644 --- a/llvm/test/CodeGen/X86/callbr-asm-phi-placement.ll +++ b/llvm/test/CodeGen/X86/callbr-asm-phi-placement.ll @@ -36,7 +36,7 @@ loop: %a = phi i8* [ %arg, %entry ], [ %b, %loop ] %b = load i8*, i8** %mem, align 8 call void @foo(i8* %a) - callbr void asm sideeffect "", "*m,X"(i8* elementtype(i8) %b, i8* blockaddress(@test1, %loop)) + callbr void asm sideeffect "", "*m,i"(i8* elementtype(i8) %b, i8* blockaddress(@test1, %loop)) to label %end [label %loop] end: diff --git a/llvm/test/CodeGen/X86/callbr-asm-sink.ll b/llvm/test/CodeGen/X86/callbr-asm-sink.ll index d1a9dfb..21381de 100644 --- a/llvm/test/CodeGen/X86/callbr-asm-sink.ll +++ b/llvm/test/CodeGen/X86/callbr-asm-sink.ll @@ -21,7 +21,7 @@ define void @klist_dec_and_del(%struct1*) { ; CHECK-NEXT: movq $0, -8(%rax) ; CHECK-NEXT: retq %2 = getelementptr inbounds %struct1, %struct1* %0, i64 0, i32 1 - callbr void asm sideeffect "# $0 $1", "*m,X,~{memory},~{dirflag},~{fpsr},~{flags}"(i32* elementtype(i32) %2, i8* blockaddress(@klist_dec_and_del, %3)) + callbr void asm sideeffect "# $0 $1", "*m,i,~{memory},~{dirflag},~{fpsr},~{flags}"(i32* elementtype(i32) %2, i8* blockaddress(@klist_dec_and_del, %3)) to label %6 [label %3] 3: diff --git a/llvm/test/CodeGen/X86/callbr-asm.ll b/llvm/test/CodeGen/X86/callbr-asm.ll index c935928..22add2d 100644 --- a/llvm/test/CodeGen/X86/callbr-asm.ll +++ b/llvm/test/CodeGen/X86/callbr-asm.ll @@ -23,7 +23,7 @@ define i32 @test1(i32 %a) { ; CHECK-NEXT: retl entry: %0 = add i32 %a, 4 - callbr void asm "xorl $0, $0; jmp ${1:l}", "r,X,~{dirflag},~{fpsr},~{flags}"(i32 %0, i8* blockaddress(@test1, %fail)) to label %normal [label %fail] + callbr void asm "xorl $0, $0; jmp ${1:l}", "r,i,~{dirflag},~{fpsr},~{flags}"(i32 %0, i8* blockaddress(@test1, %fail)) to label %normal [label %fail] normal: ret i32 0 @@ -53,7 +53,7 @@ define i32 @test1b(i32 %a) { ; CHECK-NEXT: retl entry: %0 = add i32 %a, 4 - callbr void asm inteldialect "xor $0, $0; jmp ${1:l}", "r,X,~{dirflag},~{fpsr},~{flags}"(i32 %0, i8* blockaddress(@test1b, %fail)) to label %normal [label %fail] + callbr void asm inteldialect "xor $0, $0; jmp ${1:l}", "r,i,~{dirflag},~{fpsr},~{flags}"(i32 %0, i8* blockaddress(@test1b, %fail)) to label %normal [label %fail] normal: ret i32 0 @@ -74,7 +74,7 @@ entry: unreachableasm: %0 = add i32 %a, 4 - callbr void asm sideeffect "xorl $0, $0; jmp ${1:l}", "r,X,~{dirflag},~{fpsr},~{flags}"(i32 %0, i8* blockaddress(@test2, %fail)) to label %normal [label %fail] + callbr void asm sideeffect "xorl $0, $0; jmp ${1:l}", "r,i,~{dirflag},~{fpsr},~{flags}"(i32 %0, i8* blockaddress(@test2, %fail)) to label %normal [label %fail] normal: ret i32 0 @@ -148,11 +148,11 @@ label03: ; preds = %normal0, %label04, br label %label04 label04: ; preds = %normal0, %label03 - callbr void asm sideeffect "jmp ${0:l}; jmp ${1:l}; jmp ${2:l}", "X,X,X,~{dirflag},~{fpsr},~{flags}"(i8* blockaddress(@test3, %label01), i8* blockaddress(@test3, %label02), i8* blockaddress(@test3, %label03)) + callbr void asm sideeffect "jmp ${0:l}; jmp ${1:l}; jmp ${2:l}", "i,i,i,~{dirflag},~{fpsr},~{flags}"(i8* blockaddress(@test3, %label01), i8* blockaddress(@test3, %label02), i8* blockaddress(@test3, %label03)) to label %normal0 [label %label01, label %label02, label %label03] normal0: ; preds = %label04 - callbr void asm sideeffect "jmp ${0:l}; jmp ${1:l}; jmp ${2:l}; jmp ${3:l}", "X,X,X,X,~{dirflag},~{fpsr},~{flags}"(i8* blockaddress(@test3, %label01), i8* blockaddress(@test3, %label02), i8* blockaddress(@test3, %label03), i8* blockaddress(@test3, %label04)) + callbr void asm sideeffect "jmp ${0:l}; jmp ${1:l}; jmp ${2:l}; jmp ${3:l}", "i,i,i,i,~{dirflag},~{fpsr},~{flags}"(i8* blockaddress(@test3, %label01), i8* blockaddress(@test3, %label02), i8* blockaddress(@test3, %label03), i8* blockaddress(@test3, %label04)) to label %normal1 [label %label01, label %label02, label %label03, label %label04] normal1: ; preds = %normal0 @@ -175,11 +175,11 @@ define void @test4() { ; CHECK-NEXT: .LBB4_3: # %quux ; CHECK-NEXT: retl entry: - callbr void asm sideeffect "ja $0", "X,~{dirflag},~{fpsr},~{flags}"(i8* blockaddress(@test4, %quux)) + callbr void asm sideeffect "ja $0", "i,~{dirflag},~{fpsr},~{flags}"(i8* blockaddress(@test4, %quux)) to label %asm.fallthrough [label %quux] asm.fallthrough: ; preds = %entry - callbr void asm sideeffect "ja ${0:l}", "X,~{dirflag},~{fpsr},~{flags}"(i8* blockaddress(@test4, %quux)) + callbr void asm sideeffect "ja ${0:l}", "i,~{dirflag},~{fpsr},~{flags}"(i8* blockaddress(@test4, %quux)) to label %cleanup [label %quux] quux: ; preds = %asm.fallthrough, %entry diff --git a/llvm/test/CodeGen/X86/callbr-codegenprepare.ll b/llvm/test/CodeGen/X86/callbr-codegenprepare.ll index d8755f6..8e63e33 100644 --- a/llvm/test/CodeGen/X86/callbr-codegenprepare.ll +++ b/llvm/test/CodeGen/X86/callbr-codegenprepare.ll @@ -12,7 +12,7 @@ declare void @foo(i32) define dso_local i32 @futex_lock_pi_atomic() local_unnamed_addr { entry: - %0 = callbr i32 asm "", "=r,X,~{dirflag},~{fpsr},~{flags}"(i8* blockaddress(@futex_lock_pi_atomic, %b.exit)) + %0 = callbr i32 asm "", "=r,i,~{dirflag},~{fpsr},~{flags}"(i8* blockaddress(@futex_lock_pi_atomic, %b.exit)) to label %asm.fallthrough.i [label %b.exit] asm.fallthrough.i: diff --git a/llvm/test/CodeGen/X86/shrinkwrap-callbr.ll b/llvm/test/CodeGen/X86/shrinkwrap-callbr.ll index 5ede0b2..12affb6 100644 --- a/llvm/test/CodeGen/X86/shrinkwrap-callbr.ll +++ b/llvm/test/CodeGen/X86/shrinkwrap-callbr.ll @@ -48,7 +48,7 @@ ret0: if.end: %call = tail call i32 @fn() - callbr void asm sideeffect "# jump to $0", "X,~{dirflag},~{fpsr},~{flags}"(i8* blockaddress(@test1, %two)) + callbr void asm sideeffect "# jump to $0", "i,~{dirflag},~{fpsr},~{flags}"(i8* blockaddress(@test1, %two)) to label %return [label %two] two: diff --git a/llvm/test/CodeGen/X86/tail-dup-asm-goto.ll b/llvm/test/CodeGen/X86/tail-dup-asm-goto.ll index b2b3f3d..3d7883a 100644 --- a/llvm/test/CodeGen/X86/tail-dup-asm-goto.ll +++ b/llvm/test/CodeGen/X86/tail-dup-asm-goto.ll @@ -50,7 +50,7 @@ bb106: ; preds = %bb bb110: ; preds = %bb106, %bb100 %i10.1 = phi i8* [ %arg2, %bb106 ], [ %i28.i, %bb100 ] - callbr void asm sideeffect "#$0 $1 $2", "i,i,X,~{dirflag},~{fpsr},~{flags}"(i32 42, i1 false, i8* blockaddress(@test1, %bb17.i.i.i)) + callbr void asm sideeffect "#$0 $1 $2", "i,i,i,~{dirflag},~{fpsr},~{flags}"(i32 42, i1 false, i8* blockaddress(@test1, %bb17.i.i.i)) to label %kmem_cache_has_cpu_partial.exit [label %bb17.i.i.i] bb17.i.i.i: ; preds = %bb110 diff --git a/llvm/test/Instrumentation/MemorySanitizer/msan_asm_conservative.ll b/llvm/test/Instrumentation/MemorySanitizer/msan_asm_conservative.ll index 862a028..7c91c7a 100644 --- a/llvm/test/Instrumentation/MemorySanitizer/msan_asm_conservative.ll +++ b/llvm/test/Instrumentation/MemorySanitizer/msan_asm_conservative.ll @@ -278,7 +278,7 @@ entry: ; and the compiler doesn't crash. define dso_local i32 @asm_goto(i32 %n) sanitize_memory { entry: - callbr void asm sideeffect "cmp $0, $1; jnz ${2:l}", "r,r,X,~{dirflag},~{fpsr},~{flags}"(i32 %n, i32 1, i8* blockaddress(@asm_goto, %skip_label)) + callbr void asm sideeffect "cmp $0, $1; jnz ${2:l}", "r,r,i,~{dirflag},~{fpsr},~{flags}"(i32 %n, i32 1, i8* blockaddress(@asm_goto, %skip_label)) to label %cleanup [label %skip_label] skip_label: ; preds = %entry diff --git a/llvm/test/Transforms/CallSiteSplitting/callsite-split-callbr.ll b/llvm/test/Transforms/CallSiteSplitting/callsite-split-callbr.ll index 42c6c29..1d69c71 100644 --- a/llvm/test/Transforms/CallSiteSplitting/callsite-split-callbr.ll +++ b/llvm/test/Transforms/CallSiteSplitting/callsite-split-callbr.ll @@ -7,7 +7,7 @@ define void @caller() { ; CHECK-LABEL: @caller( ; CHECK-NEXT: Top: -; CHECK-NEXT: callbr void asm sideeffect "", "X,~{dirflag},~{fpsr},~{flags}"(i8* blockaddress(@caller, [[TOP_SPLIT:%.*]])) +; CHECK-NEXT: callbr void asm sideeffect "", "i,~{dirflag},~{fpsr},~{flags}"(i8* blockaddress(@caller, [[TOP_SPLIT:%.*]])) ; CHECK-NEXT: to label [[NEXTCOND:%.*]] [label %Top.split] ; CHECK-LABEL: Top.split: ; CHECK-NEXT: call void @callee(i1 false) @@ -19,7 +19,7 @@ define void @caller() { ; CHECK-NEXT: br label [[CALLSITEBB]] ; CHECK-LABEL: CallSiteBB: ; CHECK-NEXT: [[PHI:%.*]] = phi i1 [ false, [[TOP_SPLIT]] ], [ true, [[NEXTCOND_SPLIT]] ] -; CHECK-NEXT: callbr void asm sideeffect "", "r,X,~{dirflag},~{fpsr},~{flags}"(i1 [[PHI]], i8* blockaddress(@caller, [[END2:%.*]])) +; CHECK-NEXT: callbr void asm sideeffect "", "r,i,~{dirflag},~{fpsr},~{flags}"(i1 [[PHI]], i8* blockaddress(@caller, [[END2:%.*]])) ; CHECK-NEXT: to label [[END:%.*]] [label %End2] ; CHECK-LABEL: End: ; CHECK-NEXT: ret void @@ -27,7 +27,7 @@ define void @caller() { ; CHECK-NEXT: ret void ; Top: - callbr void asm sideeffect "", "X,~{dirflag},~{fpsr},~{flags}"(i8* blockaddress(@caller, %CallSiteBB)) + callbr void asm sideeffect "", "i,~{dirflag},~{fpsr},~{flags}"(i8* blockaddress(@caller, %CallSiteBB)) to label %NextCond [label %CallSiteBB] NextCond: @@ -36,7 +36,7 @@ NextCond: CallSiteBB: %phi = phi i1 [0, %Top],[1, %NextCond] call void @callee(i1 %phi) - callbr void asm sideeffect "", "r,X,~{dirflag},~{fpsr},~{flags}"(i1 %phi, i8* blockaddress(@caller, %End2)) + callbr void asm sideeffect "", "r,i,~{dirflag},~{fpsr},~{flags}"(i1 %phi, i8* blockaddress(@caller, %End2)) to label %End [label %End2] End: diff --git a/llvm/test/Transforms/Coroutines/coro-debug.ll b/llvm/test/Transforms/Coroutines/coro-debug.ll index 75b59d6..a05e5ed 100644 --- a/llvm/test/Transforms/Coroutines/coro-debug.ll +++ b/llvm/test/Transforms/Coroutines/coro-debug.ll @@ -56,7 +56,7 @@ sw.epilog: ; preds = %sw.bb %4 = load i32, i32* %x.addr, align 4, !dbg !20 %add = add nsw i32 %4, 1, !dbg !21 store i32 %add, i32* %x.addr, align 4, !dbg !22 - %asm_res = callbr i32 asm "", "=r,r,X"(i32 %x, i8* blockaddress(@f, %indirect.dest)) + %asm_res = callbr i32 asm "", "=r,r,i"(i32 %x, i8* blockaddress(@f, %indirect.dest)) to label %coro_Cleanup [label %indirect.dest] indirect.dest: diff --git a/llvm/test/Transforms/GVN/callbr-loadpre-critedge.ll b/llvm/test/Transforms/GVN/callbr-loadpre-critedge.ll index 2a6a0aa..377521d 100644 --- a/llvm/test/Transforms/GVN/callbr-loadpre-critedge.ll +++ b/llvm/test/Transforms/GVN/callbr-loadpre-critedge.ll @@ -9,7 +9,7 @@ define void @widget(%struct.pluto** %tmp1) { ; CHECK-LABEL: @widget( ; CHECK-NEXT: bb: -; CHECK-NEXT: callbr void asm sideeffect "", "X,X"(i8* blockaddress(@widget, [[BB5:%.*]]), i8* blockaddress(@widget, [[BB8:%.*]])) +; CHECK-NEXT: callbr void asm sideeffect "", "i,i"(i8* blockaddress(@widget, [[BB5:%.*]]), i8* blockaddress(@widget, [[BB8:%.*]])) ; CHECK-NEXT: to label [[BB4:%.*]] [label [[BB5]], label %bb8] ; CHECK: bb4: ; CHECK-NEXT: br label [[BB5]] @@ -26,7 +26,7 @@ define void @widget(%struct.pluto** %tmp1) { ; CHECK-NEXT: ret void ; bb: - callbr void asm sideeffect "", "X,X"(i8* blockaddress(@widget, %bb5), i8* blockaddress(@widget, %bb8)) + callbr void asm sideeffect "", "i,i"(i8* blockaddress(@widget, %bb5), i8* blockaddress(@widget, %bb8)) to label %bb4 [label %bb5, label %bb8] bb4: ; preds = %bb diff --git a/llvm/test/Transforms/GVN/callbr-scalarpre-critedge.ll b/llvm/test/Transforms/GVN/callbr-scalarpre-critedge.ll index 733ba4a..9fc3714 100644 --- a/llvm/test/Transforms/GVN/callbr-scalarpre-critedge.ll +++ b/llvm/test/Transforms/GVN/callbr-scalarpre-critedge.ll @@ -8,7 +8,7 @@ define void @wombat(i64 %arg, i64* %arg1, i64 %arg2, i32* %arg3) { ; CHECK-LABEL: @wombat( ; CHECK-NEXT: bb: ; CHECK-NEXT: [[TMP5:%.*]] = or i64 [[ARG2:%.*]], [[ARG:%.*]] -; CHECK-NEXT: callbr void asm sideeffect "", "X,X"(i8* blockaddress(@wombat, [[BB7:%.*]]), i8* blockaddress(@wombat, [[BB9:%.*]])) +; CHECK-NEXT: callbr void asm sideeffect "", "i,i"(i8* blockaddress(@wombat, [[BB7:%.*]]), i8* blockaddress(@wombat, [[BB9:%.*]])) ; CHECK-NEXT: to label [[BB6:%.*]] [label [[BB7]], label %bb9] ; CHECK: bb6: ; CHECK-NEXT: br label [[BB7]] @@ -23,7 +23,7 @@ define void @wombat(i64 %arg, i64* %arg1, i64 %arg2, i32* %arg3) { ; bb: %tmp5 = or i64 %arg2, %arg - callbr void asm sideeffect "", "X,X"(i8* blockaddress(@wombat, %bb7), i8* blockaddress(@wombat, %bb9)) + callbr void asm sideeffect "", "i,i"(i8* blockaddress(@wombat, %bb7), i8* blockaddress(@wombat, %bb9)) to label %bb6 [label %bb7, label %bb9] bb6: ; preds = %bb diff --git a/llvm/test/Transforms/GVN/critical-edge-split-failure.ll b/llvm/test/Transforms/GVN/critical-edge-split-failure.ll index 662efd4..b41eba7 100644 --- a/llvm/test/Transforms/GVN/critical-edge-split-failure.ll +++ b/llvm/test/Transforms/GVN/critical-edge-split-failure.ll @@ -31,9 +31,9 @@ if.then: ; preds = %for.cond ; Splitting the critical edge from if.then to if.end will fail, but should not ; cause an infinite loop in GVN. If we can one day split edges of callbr ; indirect targets, great! -; CHECK: callbr void asm sideeffect "", "X,~{dirflag},~{fpsr},~{flags}"(i8* blockaddress(@l2tp_recv_dequeue, %if.end)) +; CHECK: callbr void asm sideeffect "", "i,~{dirflag},~{fpsr},~{flags}"(i8* blockaddress(@l2tp_recv_dequeue, %if.end)) ; CHECK-NEXT: to label %asm.fallthrough.i [label %if.end] - callbr void asm sideeffect "", "X,~{dirflag},~{fpsr},~{flags}"(i8* blockaddress(@l2tp_recv_dequeue, %if.end)) + callbr void asm sideeffect "", "i,~{dirflag},~{fpsr},~{flags}"(i8* blockaddress(@l2tp_recv_dequeue, %if.end)) to label %asm.fallthrough.i [label %if.end] asm.fallthrough.i: ; preds = %if.then diff --git a/llvm/test/Transforms/IROutliner/illegal-callbr.ll b/llvm/test/Transforms/IROutliner/illegal-callbr.ll index 3ac6ada..1614de5 100644 --- a/llvm/test/Transforms/IROutliner/illegal-callbr.ll +++ b/llvm/test/Transforms/IROutliner/illegal-callbr.ll @@ -24,7 +24,7 @@ bb0: %0 = add i32 %a, 4 %1 = add i32 %b, 1 %2 = add i32 %b, 1 - callbr void asm "xorl $0, $0; jmp ${1:l}", "r,X,~{dirflag},~{fpsr},~{flags}"(i32 %0, i8* blockaddress(@function1, %fail1)) to label %normal [label %fail1] + callbr void asm "xorl $0, $0; jmp ${1:l}", "r,i,~{dirflag},~{fpsr},~{flags}"(i32 %0, i8* blockaddress(@function1, %fail1)) to label %normal [label %fail1] normal: %3 = add i32 %b, 1 %4 = add i32 %b, 1 @@ -54,7 +54,7 @@ bb0: %0 = add i32 %a, 4 %1 = add i32 %b, 1 %2 = add i32 %b, 1 - callbr void asm "xorl $0, $0; jmp ${1:l}", "r,X,~{dirflag},~{fpsr},~{flags}"(i32 %0, i8* blockaddress(@function2, %fail1)) to label %normal [label %fail1] + callbr void asm "xorl $0, $0; jmp ${1:l}", "r,i,~{dirflag},~{fpsr},~{flags}"(i32 %0, i8* blockaddress(@function2, %fail1)) to label %normal [label %fail1] normal: %3 = add i32 %b, 1 %4 = add i32 %b, 1 diff --git a/llvm/test/Transforms/Inline/blockaddress.ll b/llvm/test/Transforms/Inline/blockaddress.ll index 9d472b6..1f4c852 100644 --- a/llvm/test/Transforms/Inline/blockaddress.ll +++ b/llvm/test/Transforms/Inline/blockaddress.ll @@ -59,7 +59,7 @@ define internal i32 @foo(i32) { %3 = alloca i32, align 4 store i32 %0, i32* %3, align 4 %4 = load i32, i32* %3, align 4 - callbr void asm sideeffect "testl $0, $0; jne ${1:l};", "r,X,X,~{dirflag},~{fpsr},~{flags}"(i32 %4, i8* blockaddress(@foo, %7), i8* blockaddress(@foo, %6)) #1 + callbr void asm sideeffect "testl $0, $0; jne ${1:l};", "r,i,i,~{dirflag},~{fpsr},~{flags}"(i32 %4, i8* blockaddress(@foo, %7), i8* blockaddress(@foo, %6)) #1 to label %5 [label %7, label %6] ;