https://github.com/statham-arm created 
https://github.com/llvm/llvm-project/pull/141562

In 'asm goto' statements ('callbr' in LLVM IR), you can specify one or more 
labels / basic blocks in the containing function which the assembly code might 
jump to. If you're also compiling with branch target enforcement via BTI, then 
previously listing a basic block as a possible jump destination of an asm goto 
would cause a BTI instruction to be placed at the start of the block, in case 
the assembly code used an _indirect_ branch instruction (i.e. to a destination 
address read from a register) to jump to that location. Now it doesn't do that 
any more: branches to destination labels from the assembly code are assumed to 
be direct branches (to a relative offset encoded in the instruction), which 
don't require a BTI at their destination.

This change was proposed in https://discourse.llvm.org/t/85845 and there seemed 
to be no disagreement. The rationale is:

1. it brings clang's handling of asm goto in Arm and AArch64 in line with 
gcc's, which didn't generate BTIs at the target labels in the first place.

2. it improves performance in the Linux kernel, which uses a lot of 'asm goto' 
in which the assembly language just contains a NOP, and the label's address is 
saved elsewhere to let the kernel self-modify at run time to swap between the 
original NOP and a direct branch to the label. This allows hot code paths to be 
instrumented for debugging, at only the cost of a NOP when the instrumentation 
is turned off, instead of the larger cost of an indirect branch. In this 
situation a BTI is unnecessary (if the branch happens it's direct), and since 
the code paths are hot, also a noticeable performance hit.

Implementation:

`SelectionDAGBuilder::visitCallBr` is the place where 'asm goto' target labels 
are handled. It calls `setIsInlineAsmBrIndirectTarget()` on each target 
`MachineBasicBlock`. Previously it also called `setMachineBlockAddressTaken()`, 
which made `hasAddressTaken()` return true, which caused a BTI to be added in 
the Arm backends.

Now `visitCallBr` doesn't call `setMachineBlockAddressTaken()` any more on asm 
goto targets, but `hasAddressTaken()` also checks the flag set by 
`setIsInlineAsmBrIndirectTarget()`. So call sites that were using 
`hasAddressTaken()` don't need to be modified. But the Arm backends don't call 
`hasAddressTaken()` any more: instead they test two more specific query 
functions that cover all the reasons `hasAddressTaken()` might have returned 
true _except_ being an asm goto target.

Testing:

The new test `AArch64/callbr-asm-label-bti.ll` is testing the actual change, 
where it expects not to see a `bti` instruction after `[[LABEL]]`. The rest of 
the test changes are all churn, due to the flags on basic blocks changing. 
Actual output code hasn't changed in any of the existing tests, only comments 
and diagnostics.

Further work:

`RISCVIndirectBranchTracking.cpp` and `X86IndirectBranchTracking.cpp` also call 
`hasAddressTaken()` in a way that might benefit from using the same more 
specific check I've put in `ARMBranchTargets.cpp` and 
`AArch64BranchTargets.cpp`. But I'm not sure of that, so in this commit I've 
only changed the Arm backends, and left those alone.

>From 1be326ffb4350f2818068da1aa4bde2adae41d70 Mon Sep 17 00:00:00 2001
From: Simon Tatham <simon.tat...@arm.com>
Date: Wed, 14 May 2025 17:02:21 +0100
Subject: [PATCH] [ARM,AArch64] Don't put BTI at asm goto branch targets

In 'asm goto' statements ('callbr' in LLVM IR), you can specify one or
more labels / basic blocks in the containing function which the
assembly code might jump to. If you're also compiling with branch
target enforcement via BTI, then previously listing a basic block as a
possible jump destination of an asm goto would cause a BTI instruction
to be placed at the start of the block, in case the assembly code used
an _indirect_ branch instruction (i.e. to a destination address read
from a register) to jump to that location. Now it doesn't do that any
more: branches to destination labels from the assembly code are
assumed to be direct branches (to a relative offset encoded in the
instruction), which don't require a BTI at their destination.

This change was proposed in https://discourse.llvm.org/t/85845 and
there seemed to be no disagreement. The rationale is:

1. it brings clang's handling of asm goto in Arm and AArch64 in line
with gcc's, which didn't generate BTIs at the target labels in the
first place.

2. it improves performance in the Linux kernel, which uses a lot of
'asm goto' in which the assembly language just contains a NOP, and the
label's address is saved elsewhere to let the kernel self-modify at
run time to swap between the original NOP and a direct branch to the
label. This allows hot code paths to be instrumented for debugging, at
only the cost of a NOP when the instrumentation is turned off, instead
of the larger cost of an indirect branch. In this situation a BTI is
unnecessary (if the branch happens it's direct), and since the code
paths are hot, also a noticeable performance hit.

Implementation:

`SelectionDAGBuilder::visitCallBr` is the place where 'asm goto'
target labels are handled. It calls `setIsInlineAsmBrIndirectTarget()`
on each target `MachineBasicBlock`. Previously it also called
`setMachineBlockAddressTaken()`, which made `hasAddressTaken()` return
true, which caused a BTI to be added in the Arm backends.

Now `visitCallBr` doesn't call `setMachineBlockAddressTaken()` any
more on asm goto targets, but `hasAddressTaken()` also checks the flag
set by `setIsInlineAsmBrIndirectTarget()`. So call sites that were
using `hasAddressTaken()` don't need to be modified. But the Arm
backends don't call `hasAddressTaken()` any more: instead they test
two more specific query functions that cover all the reasons
`hasAddressTaken()` might have returned true _except_ being an asm
goto target.

Testing:

The new test `AArch64/callbr-asm-label-bti.ll` is testing the actual
change, where it expects not to see a `bti` instruction after
`[[LABEL]]`. The rest of the test changes are all churn, due to the
flags on basic blocks changing. Actual output code hasn't changed in
any of the existing tests, only comments and diagnostics.

Further work:

`RISCVIndirectBranchTracking.cpp` and `X86IndirectBranchTracking.cpp`
also call `hasAddressTaken()` in a way that might benefit from using
the same more specific check I've put in `ARMBranchTargets.cpp` and
`AArch64BranchTargets.cpp`. But I'm not sure of that, so in this
commit I've only changed the Arm backends, and left those alone.
---
 clang/docs/LanguageExtensions.rst             |  11 ++
 llvm/docs/LangRef.rst                         |   8 ++
 llvm/include/llvm/CodeGen/MachineBasicBlock.h |  17 ++-
 llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp    |   2 +
 llvm/lib/CodeGen/BasicBlockPathCloning.cpp    |  11 +-
 .../SelectionDAG/SelectionDAGBuilder.cpp      |   5 +-
 .../Target/AArch64/AArch64BranchTargets.cpp   |   3 +-
 llvm/lib/Target/ARM/ARMBranchTargets.cpp      |   3 +-
 .../CodeGen/AArch64/callbr-asm-label-bti.ll   |  40 ++++++
 llvm/test/CodeGen/AArch64/callbr-asm-label.ll |   6 +-
 .../callbr-asm-outputs-indirect-isel.ll       |  30 ++---
 .../callbr-asm-outputs-indirect-isel.ll       |   2 +-
 .../PowerPC/ppc64-inlineasm-clobber.ll        |   8 +-
 .../RISCV/inline-asm-mem-constraint.ll        | 120 +++++++++---------
 .../basic-block-sections-cloning-invalid.ll   |   2 +-
 .../CodeGen/X86/callbr-asm-blockplacement.ll  |   2 +-
 .../CodeGen/X86/callbr-asm-branch-folding.ll  |   2 +-
 .../CodeGen/X86/callbr-asm-destinations.ll    |   4 +-
 .../test/CodeGen/X86/callbr-asm-label-addr.ll |   2 +-
 .../callbr-asm-outputs-indirect-isel-m32.ll   |   6 +-
 .../X86/callbr-asm-outputs-indirect-isel.ll   |  22 ++--
 .../X86/callbr-asm-outputs-pred-succ.ll       |   4 +-
 llvm/test/CodeGen/X86/callbr-asm-outputs.ll   |  24 ++--
 .../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/shrinkwrap-callbr.ll    |   2 +-
 llvm/test/CodeGen/X86/tail-dup-asm-goto.ll    |   4 +-
 28 files changed, 223 insertions(+), 135 deletions(-)
 create mode 100644 llvm/test/CodeGen/AArch64/callbr-asm-label-bti.ll

diff --git a/clang/docs/LanguageExtensions.rst 
b/clang/docs/LanguageExtensions.rst
index a40dd4d1a1673..84b6c0c87a799 100644
--- a/clang/docs/LanguageExtensions.rst
+++ b/clang/docs/LanguageExtensions.rst
@@ -2042,6 +2042,17 @@ references can be used instead of numeric references.
       return -1;
   }
 
+ASM Goto versus Branch Target Enforcement
+=========================================
+
+Some target architectures implement branch target enforcement, by requiring
+indirect (register-controlled) branch instructions to jump only to locations
+marked by a special instruction (such as AArch64 ``bti``).
+
+The assembler code inside an ``asm goto`` statement is expected not to use a
+branch instruction of that kind to transfer control to any of its destination
+labels. Therefore, using a label in an ``asm goto`` statement does not cause
+clang to put a ``bti`` or equivalent instruction at the label.
 
 Constexpr strings in GNU ASM statements
 =======================================
diff --git a/llvm/docs/LangRef.rst b/llvm/docs/LangRef.rst
index 8c0a046d3a7e9..6a4bf6e594d14 100644
--- a/llvm/docs/LangRef.rst
+++ b/llvm/docs/LangRef.rst
@@ -9596,6 +9596,14 @@ may not be equal to the address provided for the same 
block to this
 instruction's ``indirect labels`` operand. The assembly code may only transfer
 control to addresses provided via this instruction's ``indirect labels``.
 
+On target architectures that implement branch target enforcement by requiring
+indirect (register-controlled) branch instructions to jump only to locations
+marked by a special instruction (such as AArch64 ``bti``), the called code is
+expected not to use such an indirect branch to transfer control to the
+locations in ``indirect labels``. Therefore, including a label in the
+``indirect labels`` of a ``callbr`` does not require the compiler to put a
+``bti`` or equivalent instruction at the label.
+
 Arguments:
 """"""""""
 
diff --git a/llvm/include/llvm/CodeGen/MachineBasicBlock.h 
b/llvm/include/llvm/CodeGen/MachineBasicBlock.h
index 201e35d30cee2..284756e0b8e30 100644
--- a/llvm/include/llvm/CodeGen/MachineBasicBlock.h
+++ b/llvm/include/llvm/CodeGen/MachineBasicBlock.h
@@ -275,18 +275,33 @@ class MachineBasicBlock
   /// of a terminator, exception-handling target, or jump table. This is
   /// either the result of an IR-level "blockaddress", or some form
   /// of target-specific branch lowering.
+  ///
+  /// The name of this function `hasAddressTaken` implies that the address of
+  /// the block is known and used in a general sense, but not necessarily that
+  /// the address is used by an indirect branch instruction. So branch target
+  /// enforcement need not put a BTI instruction (or equivalent) at the start
+  /// of a block just because this function returns true. The decision about
+  /// whether to add a BTI can be more subtle than that, and depends on the
+  /// more detailed checks that this function aggregates together.
   bool hasAddressTaken() const {
-    return MachineBlockAddressTaken || AddressTakenIRBlock;
+    return MachineBlockAddressTaken || AddressTakenIRBlock ||
+           IsInlineAsmBrIndirectTarget;
   }
 
   /// Test whether this block is used as something other than the target of a
   /// terminator, exception-handling target, jump table, or IR blockaddress.
   /// For example, its address might be loaded into a register, or
   /// stored in some branch table that isn't part of MachineJumpTableInfo.
+  ///
+  /// If this function returns true, it _does_ mean that branch target
+  /// enforcement needs to put a BTI or equivalent at the start of the block.
   bool isMachineBlockAddressTaken() const { return MachineBlockAddressTaken; }
 
   /// Test whether this block is the target of an IR BlockAddress.  (There can
   /// more than one MBB associated with an IR BB where the address is taken.)
+  ///
+  /// If this function returns true, it _does_ mean that branch target
+  /// enforcement needs to put a BTI or equivalent at the start of the block.
   bool isIRBlockAddressTaken() const { return AddressTakenIRBlock; }
 
   /// Retrieves the BasicBlock which corresponds to this MachineBasicBlock.
diff --git a/llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp 
b/llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
index 1322973cb92de..b431896203bab 100644
--- a/llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
+++ b/llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
@@ -4330,6 +4330,8 @@ void AsmPrinter::emitBasicBlockStart(const 
MachineBasicBlock &MBB) {
       OutStreamer->emitLabel(Sym);
   } else if (isVerbose() && MBB.isMachineBlockAddressTaken()) {
     OutStreamer->AddComment("Block address taken");
+  } else if (isVerbose() && MBB.isInlineAsmBrIndirectTarget()) {
+    OutStreamer->AddComment("Inline asm indirect target");
   }
 
   // Print some verbose block comments.
diff --git a/llvm/lib/CodeGen/BasicBlockPathCloning.cpp 
b/llvm/lib/CodeGen/BasicBlockPathCloning.cpp
index 19f824850607c..b58c60d1db0a9 100644
--- a/llvm/lib/CodeGen/BasicBlockPathCloning.cpp
+++ b/llvm/lib/CodeGen/BasicBlockPathCloning.cpp
@@ -121,14 +121,21 @@ bool IsValidCloning(const MachineFunction &MF,
       }
       if (PathBB->isMachineBlockAddressTaken()) {
         // Avoid cloning blocks which have their address taken since we can't
-        // rewire branches to those blocks as easily (e.g., branches within
-        // inline assembly).
+        // rewire branches to those blocks as easily.
         WithColor::warning()
             << "block #" << BBID
             << " has its machine block address taken in function "
             << MF.getName() << "\n";
         return false;
       }
+      if (PathBB->isInlineAsmBrIndirectTarget()) {
+        // Similarly for branches to the block within an asm goto.
+        WithColor::warning()
+            << "block #" << BBID
+            << " is a branch target of an 'asm goto' in function "
+            << MF.getName() << "\n";
+        return false;
+      }
     }
 
     if (I != ClonePath.size() - 1 && !PathBB->empty() &&
diff --git a/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp 
b/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
index ca195cb37de8a..47f532fe034d9 100644
--- a/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
+++ b/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
@@ -3399,7 +3399,10 @@ void SelectionDAGBuilder::visitCallBr(const CallBrInst 
&I) {
     BasicBlock *Dest = I.getIndirectDest(i);
     MachineBasicBlock *Target = FuncInfo.getMBB(Dest);
     Target->setIsInlineAsmBrIndirectTarget();
-    Target->setMachineBlockAddressTaken();
+    // If there was a type of asm goto statement that was permitted to
+    // use an indirect call instruction to jump to its labels, then we
+    // would also have to call Target->setMachineBlockAddressTaken()
+    // here to mark the target block as requiring a BTI.
     Target->setLabelMustBeEmitted();
     // Don't add duplicate machine successors.
     if (Dests.insert(Dest).second)
diff --git a/llvm/lib/Target/AArch64/AArch64BranchTargets.cpp 
b/llvm/lib/Target/AArch64/AArch64BranchTargets.cpp
index 2a96f15c20f6b..3436dc9ef4521 100644
--- a/llvm/lib/Target/AArch64/AArch64BranchTargets.cpp
+++ b/llvm/lib/Target/AArch64/AArch64BranchTargets.cpp
@@ -99,7 +99,8 @@ bool 
AArch64BranchTargets::runOnMachineFunction(MachineFunction &MF) {
 
     // If the block itself is address-taken, it could be indirectly branched
     // to, but not called.
-    if (MBB.hasAddressTaken() || JumpTableTargets.count(&MBB))
+    if (MBB.isMachineBlockAddressTaken() || MBB.isIRBlockAddressTaken() ||
+        JumpTableTargets.count(&MBB))
       CouldJump = true;
 
     if (CouldCall || CouldJump) {
diff --git a/llvm/lib/Target/ARM/ARMBranchTargets.cpp 
b/llvm/lib/Target/ARM/ARMBranchTargets.cpp
index 17d0bdd875121..409482b9679d8 100644
--- a/llvm/lib/Target/ARM/ARMBranchTargets.cpp
+++ b/llvm/lib/Target/ARM/ARMBranchTargets.cpp
@@ -77,7 +77,8 @@ bool ARMBranchTargets::runOnMachineFunction(MachineFunction 
&MF) {
     // modes. These modes do not support PACBTI. As a result, BTI instructions
     // are not added in the destination blocks.
 
-    if (IsFirstBB || MBB.hasAddressTaken() || MBB.isEHPad()) {
+    if (IsFirstBB || MBB.isMachineBlockAddressTaken() ||
+        MBB.isIRBlockAddressTaken() || MBB.isEHPad()) {
       addBTI(TII, MBB, IsFirstBB);
       MadeChange = true;
     }
diff --git a/llvm/test/CodeGen/AArch64/callbr-asm-label-bti.ll 
b/llvm/test/CodeGen/AArch64/callbr-asm-label-bti.ll
new file mode 100644
index 0000000000000..657b5e304c7c0
--- /dev/null
+++ b/llvm/test/CodeGen/AArch64/callbr-asm-label-bti.ll
@@ -0,0 +1,40 @@
+; RUN: llc < %s -mtriple=aarch64-linux-gnu | FileCheck %s
+
+; Test function which compares two integers and returns the value of
+; the overflow flag, by using an asm goto to make the asm block branch
+; based on that flag, and then a phi to set the return value based on
+; whether the branch was taken.
+define i32 @overflow(i64 %a, i64 %b) #0 {
+asm:
+  callbr void asm sideeffect "cmp $0, $1 \0A\09 b.vs ${2:l}",
+          "r,r,!i,~{cc}"(i64 %a, i64 %b)
+          to label %fallthrough [label %indirect]
+
+indirect:
+  br label %fallthrough
+
+fallthrough:
+  ; Return 1 if we came via the 'indirect' block (because the b.vs was
+  ; taken), and 0 if we came straight from the asm block (because it
+  ; was untaken).
+  %retval = phi i32 [0, %asm], [1, %indirect]
+  ret i32 %retval
+}
+
+; CHECK: overflow:
+; CHECK-NEXT: .cfi_startproc
+; CHECK-NEXT: // %bb.{{[0-9]+}}:
+; CHECK-NEXT: bti c
+; CHECK-NEXT: //APP
+; CHECK-NEXT: cmp x0, x1
+; CHECK-NEXT: b.vs [[LABEL:\.[A-Za-z0-9_]+]]
+; CHECK-NEXT: //NO_APP
+; CHECK-NEXT: // %bb.{{[0-9]+}}:
+; CHECK-NEXT: mov w0, wzr
+; CHECK-NEXT: ret
+; CHECK-NEXT: [[LABEL]]:
+; CHECK-NOT:  bti
+; CHECK:      mov w0, #1
+; CHECK-NEXT: ret
+
+attributes #0 = { "branch-target-enforcement" "target-features"="+bti" }
diff --git a/llvm/test/CodeGen/AArch64/callbr-asm-label.ll 
b/llvm/test/CodeGen/AArch64/callbr-asm-label.ll
index 1818f94a831b9..0a49cfa11afec 100644
--- a/llvm/test/CodeGen/AArch64/callbr-asm-label.ll
+++ b/llvm/test/CodeGen/AArch64/callbr-asm-label.ll
@@ -7,7 +7,7 @@ define i32 @test1() {
 ; CHECK:         .word b
 ; CHECK-NEXT:    .word .LBB0_2
 ; CHECK: // %bb.1:
-; CHECK: .LBB0_2: // Block address taken
+; CHECK: .LBB0_2: // Inline asm indirect target
 entry:
   callbr void asm sideeffect "1:\0A\09.word b, ${0:l}\0A\09", "!i"()
           to label %cleanup [label %indirect]
@@ -31,7 +31,7 @@ entry:
 if.then:
 ; CHECK:       .word b
 ; CHECK-NEXT:  .word .LBB1_3
-; CHECK:       .LBB1_3: // Block address taken
+; CHECK:       .LBB1_3: // Inline asm indirect target
   callbr void asm sideeffect "1:\0A\09.word b, ${0:l}\0A\09", "!i"()
           to label %if.then4 [label %if.end6]
 
@@ -46,7 +46,7 @@ if.end6:
   br i1 %phitmp, label %if.end10, label %if.then9
 
 if.then9:
-; CHECK: .LBB1_5: // Block address taken
+; CHECK: .LBB1_5: // Inline asm indirect target
   callbr void asm sideeffect "", "!i"()
           to label %if.end10 [label %l_yes]
 
diff --git a/llvm/test/CodeGen/AArch64/callbr-asm-outputs-indirect-isel.ll 
b/llvm/test/CodeGen/AArch64/callbr-asm-outputs-indirect-isel.ll
index fbe89e70e4d8e..00d5d20de8fe8 100644
--- a/llvm/test/CodeGen/AArch64/callbr-asm-outputs-indirect-isel.ll
+++ b/llvm/test/CodeGen/AArch64/callbr-asm-outputs-indirect-isel.ll
@@ -22,7 +22,7 @@ define i32 @test0() {
   ; CHECK-NEXT:   [[COPY:%[0-9]+]]:gpr32all = COPY %5
   ; CHECK-NEXT:   B %bb.2
   ; CHECK-NEXT: {{  $}}
-  ; CHECK-NEXT: bb.1.entry.indirect_crit_edge (machine-block-address-taken, 
inlineasm-br-indirect-target):
+  ; CHECK-NEXT: bb.1.entry.indirect_crit_edge (inlineasm-br-indirect-target):
   ; CHECK-NEXT:   successors: %bb.5(0x80000000)
   ; CHECK-NEXT: {{  $}}
   ; CHECK-NEXT:   [[COPY1:%[0-9]+]]:gpr32all = COPY %5
@@ -35,7 +35,7 @@ define i32 @test0() {
   ; CHECK-NEXT:   [[COPY2:%[0-9]+]]:gpr32all = COPY %7
   ; CHECK-NEXT:   B %bb.4
   ; CHECK-NEXT: {{  $}}
-  ; CHECK-NEXT: bb.3.direct.indirect_crit_edge (machine-block-address-taken, 
inlineasm-br-indirect-target):
+  ; CHECK-NEXT: bb.3.direct.indirect_crit_edge (inlineasm-br-indirect-target):
   ; CHECK-NEXT:   successors: %bb.5(0x80000000)
   ; CHECK-NEXT: {{  $}}
   ; CHECK-NEXT:   [[COPY3:%[0-9]+]]:gpr32all = COPY %7
@@ -87,7 +87,7 @@ define i32 @dont_split0() {
   ; CHECK-NEXT:   $w0 = COPY [[MOVi32imm]]
   ; CHECK-NEXT:   RET_ReallyLR implicit $w0
   ; CHECK-NEXT: {{  $}}
-  ; CHECK-NEXT: bb.2.y (machine-block-address-taken, 
inlineasm-br-indirect-target):
+  ; CHECK-NEXT: bb.2.y (inlineasm-br-indirect-target):
   ; CHECK-NEXT:   [[COPY:%[0-9]+]]:gpr32all = COPY $wzr
   ; CHECK-NEXT:   $w0 = COPY [[COPY]]
   ; CHECK-NEXT:   RET_ReallyLR implicit $w0
@@ -116,7 +116,7 @@ define i32 @dont_split1() {
   ; CHECK-NEXT:   $w0 = COPY [[MOVi32imm]]
   ; CHECK-NEXT:   RET_ReallyLR implicit $w0
   ; CHECK-NEXT: {{  $}}
-  ; CHECK-NEXT: bb.2.y (machine-block-address-taken, 
inlineasm-br-indirect-target):
+  ; CHECK-NEXT: bb.2.y (inlineasm-br-indirect-target):
   ; CHECK-NEXT:   $w0 = COPY %1
   ; CHECK-NEXT:   RET_ReallyLR implicit $w0
 entry:
@@ -147,7 +147,7 @@ define i32 @dont_split2() {
   ; CHECK-NEXT:   [[COPY1:%[0-9]+]]:gpr32all = COPY $wzr
   ; CHECK-NEXT:   [[COPY2:%[0-9]+]]:gpr32all = COPY [[COPY1]]
   ; CHECK-NEXT: {{  $}}
-  ; CHECK-NEXT: bb.2.y (machine-block-address-taken, 
inlineasm-br-indirect-target):
+  ; CHECK-NEXT: bb.2.y (inlineasm-br-indirect-target):
   ; CHECK-NEXT:   [[PHI:%[0-9]+]]:gpr32all = PHI [[COPY]], %bb.0, [[COPY2]], 
%bb.1
   ; CHECK-NEXT:   $w0 = COPY [[PHI]]
   ; CHECK-NEXT:   RET_ReallyLR implicit $w0
@@ -174,7 +174,7 @@ define i32 @dont_split3() {
   ; CHECK-NEXT: bb.1.x:
   ; CHECK-NEXT:   successors: %bb.2(0x80000000)
   ; CHECK-NEXT: {{  $}}
-  ; CHECK-NEXT: bb.2.v (machine-block-address-taken, 
inlineasm-br-indirect-target):
+  ; CHECK-NEXT: bb.2.v (inlineasm-br-indirect-target):
   ; CHECK-NEXT:   [[MOVi32imm:%[0-9]+]]:gpr32 = MOVi32imm 42
   ; CHECK-NEXT:   $w0 = COPY [[MOVi32imm]]
   ; CHECK-NEXT:   RET_ReallyLR implicit $w0
@@ -198,7 +198,7 @@ define i32 @split_me0() {
   ; CHECK-NEXT:   [[COPY:%[0-9]+]]:gpr32all = COPY %3
   ; CHECK-NEXT:   B %bb.2
   ; CHECK-NEXT: {{  $}}
-  ; CHECK-NEXT: bb.1.entry.y_crit_edge (machine-block-address-taken, 
inlineasm-br-indirect-target):
+  ; CHECK-NEXT: bb.1.entry.y_crit_edge (inlineasm-br-indirect-target):
   ; CHECK-NEXT:   successors: %bb.3(0x80000000)
   ; CHECK-NEXT: {{  $}}
   ; CHECK-NEXT:   [[COPY1:%[0-9]+]]:gpr32all = COPY %3
@@ -248,7 +248,7 @@ define i32 @split_me1(i1 %z) {
   ; CHECK-NEXT:   [[COPY1:%[0-9]+]]:gpr32all = COPY %5
   ; CHECK-NEXT:   B %bb.3
   ; CHECK-NEXT: {{  $}}
-  ; CHECK-NEXT: bb.2.w.v_crit_edge (machine-block-address-taken, 
inlineasm-br-indirect-target):
+  ; CHECK-NEXT: bb.2.w.v_crit_edge (inlineasm-br-indirect-target):
   ; CHECK-NEXT:   successors: %bb.4(0x80000000)
   ; CHECK-NEXT: {{  $}}
   ; CHECK-NEXT:   [[COPY2:%[0-9]+]]:gpr32all = COPY %5
@@ -301,7 +301,7 @@ define i32 @split_me2(i1 %z) {
   ; CHECK-NEXT:   [[COPY2:%[0-9]+]]:gpr32all = COPY %6
   ; CHECK-NEXT:   B %bb.3
   ; CHECK-NEXT: {{  $}}
-  ; CHECK-NEXT: bb.2.w.v_crit_edge (machine-block-address-taken, 
inlineasm-br-indirect-target):
+  ; CHECK-NEXT: bb.2.w.v_crit_edge (inlineasm-br-indirect-target):
   ; CHECK-NEXT:   successors: %bb.4(0x80000000)
   ; CHECK-NEXT: {{  $}}
   ; CHECK-NEXT:   [[COPY3:%[0-9]+]]:gpr32all = COPY %6
@@ -349,7 +349,7 @@ define i32 @dont_split4() {
   ; CHECK-NEXT: {{  $}}
   ; CHECK-NEXT:   B %bb.3
   ; CHECK-NEXT: {{  $}}
-  ; CHECK-NEXT: bb.2.y (machine-block-address-taken, 
inlineasm-br-indirect-target):
+  ; CHECK-NEXT: bb.2.y (inlineasm-br-indirect-target):
   ; CHECK-NEXT:   successors: %bb.3(0x80000000)
   ; CHECK-NEXT: {{  $}}
   ; CHECK-NEXT:   [[COPY1:%[0-9]+]]:gpr32all = COPY %3
@@ -383,7 +383,7 @@ define i32 @dont_split5() {
   ; CHECK-NEXT:   [[COPY:%[0-9]+]]:gpr32all = COPY %3
   ; CHECK-NEXT:   B %bb.2
   ; CHECK-NEXT: {{  $}}
-  ; CHECK-NEXT: bb.1.y (machine-block-address-taken, 
inlineasm-br-indirect-target):
+  ; CHECK-NEXT: bb.1.y (inlineasm-br-indirect-target):
   ; CHECK-NEXT:   successors: %bb.2(0x80000000)
   ; CHECK-NEXT: {{  $}}
   ; CHECK-NEXT:   [[COPY1:%[0-9]+]]:gpr32all = COPY %3
@@ -414,7 +414,7 @@ define i32 @split_me3() {
   ; CHECK-NEXT:   [[COPY:%[0-9]+]]:gpr32all = COPY %3
   ; CHECK-NEXT:   B %bb.2
   ; CHECK-NEXT: {{  $}}
-  ; CHECK-NEXT: bb.1.entry.out_crit_edge (machine-block-address-taken, 
inlineasm-br-indirect-target):
+  ; CHECK-NEXT: bb.1.entry.out_crit_edge (inlineasm-br-indirect-target):
   ; CHECK-NEXT:   successors: %bb.3(0x80000000)
   ; CHECK-NEXT: {{  $}}
   ; CHECK-NEXT:   [[COPY1:%[0-9]+]]:gpr32all = COPY %3
@@ -460,7 +460,7 @@ define i32 @dont_split6(i32 %0) {
   ; CHECK-NEXT:   [[COPY2:%[0-9]+]]:gpr32all = COPY %4
   ; CHECK-NEXT:   B %bb.3
   ; CHECK-NEXT: {{  $}}
-  ; CHECK-NEXT: bb.2.loop.loop_crit_edge (machine-block-address-taken, 
inlineasm-br-indirect-target):
+  ; CHECK-NEXT: bb.2.loop.loop_crit_edge (inlineasm-br-indirect-target):
   ; CHECK-NEXT:   successors: %bb.1(0x80000000)
   ; CHECK-NEXT: {{  $}}
   ; CHECK-NEXT:   [[COPY3:%[0-9]+]]:gpr32all = COPY %4
@@ -495,7 +495,7 @@ define i32 @split_me4() {
   ; CHECK-NEXT:   [[COPY:%[0-9]+]]:gpr32all = COPY %3
   ; CHECK-NEXT:   B %bb.2
   ; CHECK-NEXT: {{  $}}
-  ; CHECK-NEXT: bb.1.entry.same_crit_edge (machine-block-address-taken, 
inlineasm-br-indirect-target):
+  ; CHECK-NEXT: bb.1.entry.same_crit_edge (inlineasm-br-indirect-target):
   ; CHECK-NEXT:   successors: %bb.2(0x80000000)
   ; CHECK-NEXT: {{  $}}
   ; CHECK-NEXT:   [[COPY1:%[0-9]+]]:gpr32all = COPY %3
@@ -526,7 +526,7 @@ define i32 @split_me5() {
   ; CHECK-NEXT:   [[COPY:%[0-9]+]]:gpr32all = COPY %3
   ; CHECK-NEXT:   B %bb.2
   ; CHECK-NEXT: {{  $}}
-  ; CHECK-NEXT: bb.1.entry.same_crit_edge (machine-block-address-taken, 
inlineasm-br-indirect-target):
+  ; CHECK-NEXT: bb.1.entry.same_crit_edge (inlineasm-br-indirect-target):
   ; CHECK-NEXT:   successors: %bb.2(0x80000000)
   ; CHECK-NEXT: {{  $}}
   ; CHECK-NEXT:   [[COPY1:%[0-9]+]]:gpr32all = COPY %3
diff --git a/llvm/test/CodeGen/PowerPC/callbr-asm-outputs-indirect-isel.ll 
b/llvm/test/CodeGen/PowerPC/callbr-asm-outputs-indirect-isel.ll
index 987b8da75ccf0..d52a9dbc577a8 100644
--- a/llvm/test/CodeGen/PowerPC/callbr-asm-outputs-indirect-isel.ll
+++ b/llvm/test/CodeGen/PowerPC/callbr-asm-outputs-indirect-isel.ll
@@ -22,7 +22,7 @@ define void @strncpy_from_kernel_nofault_count() {
   ; CHECK-NEXT: bb.2.Efault:
   ; CHECK-NEXT:   BLR8 implicit $lr8, implicit $rm
   ; CHECK-NEXT: {{  $}}
-  ; CHECK-NEXT: bb.3.Efault.split (machine-block-address-taken, 
inlineasm-br-indirect-target):
+  ; CHECK-NEXT: bb.3.Efault.split (inlineasm-br-indirect-target):
   ; CHECK-NEXT:   successors: %bb.2(0x80000000)
   ; CHECK-NEXT: {{  $}}
   ; CHECK-NEXT:   STB %1, 0, $zero8 :: (store (s8) into `ptr null`)
diff --git a/llvm/test/CodeGen/PowerPC/ppc64-inlineasm-clobber.ll 
b/llvm/test/CodeGen/PowerPC/ppc64-inlineasm-clobber.ll
index 57bc882f6046e..3316f1b0b87a3 100644
--- a/llvm/test/CodeGen/PowerPC/ppc64-inlineasm-clobber.ll
+++ b/llvm/test/CodeGen/PowerPC/ppc64-inlineasm-clobber.ll
@@ -86,7 +86,7 @@ define dso_local signext i32 @ClobberLR_BR(i32 signext %in) 
#0 {
 ; PPC64LE-NEXT:    ld r0, 16(r1)
 ; PPC64LE-NEXT:    mtlr r0
 ; PPC64LE-NEXT:    blr
-; PPC64LE-NEXT:  .LBB3_2: # Block address taken
+; PPC64LE-NEXT:  .LBB3_2: # Inline asm indirect target
 ; PPC64LE-NEXT:    # %return_early
 ; PPC64LE-NEXT:    # Label of block must be emitted
 ; PPC64LE-NEXT:    li r3, 0
@@ -105,7 +105,7 @@ define dso_local signext i32 @ClobberLR_BR(i32 signext %in) 
#0 {
 ; PPC64BE-NEXT:    ld r0, 16(r1)
 ; PPC64BE-NEXT:    mtlr r0
 ; PPC64BE-NEXT:    blr
-; PPC64BE-NEXT:  .LBB3_2: # Block address taken
+; PPC64BE-NEXT:  .LBB3_2: # Inline asm indirect target
 ; PPC64BE-NEXT:    # %return_early
 ; PPC64BE-NEXT:    # Label of block must be emitted
 ; PPC64BE-NEXT:    li r3, 0
@@ -130,7 +130,7 @@ define dso_local signext i32 @ClobberR5_BR(i32 signext %in) 
#0 {
 ; PPC64LE-NEXT:    #NO_APP
 ; PPC64LE-NEXT:  # %bb.1: # %return
 ; PPC64LE-NEXT:    blr
-; PPC64LE-NEXT:  .LBB4_2: # Block address taken
+; PPC64LE-NEXT:  .LBB4_2: # Inline asm indirect target
 ; PPC64LE-NEXT:    # %return_early
 ; PPC64LE-NEXT:    # Label of block must be emitted
 ; PPC64LE-NEXT:    li r3, 0
@@ -143,7 +143,7 @@ define dso_local signext i32 @ClobberR5_BR(i32 signext %in) 
#0 {
 ; PPC64BE-NEXT:    #NO_APP
 ; PPC64BE-NEXT:  # %bb.1: # %return
 ; PPC64BE-NEXT:    blr
-; PPC64BE-NEXT:  .LBB4_2: # Block address taken
+; PPC64BE-NEXT:  .LBB4_2: # Inline asm indirect target
 ; PPC64BE-NEXT:    # %return_early
 ; PPC64BE-NEXT:    # Label of block must be emitted
 ; PPC64BE-NEXT:    li r3, 0
diff --git a/llvm/test/CodeGen/RISCV/inline-asm-mem-constraint.ll 
b/llvm/test/CodeGen/RISCV/inline-asm-mem-constraint.ll
index f0837d55bc53f..dd68ef8ea7d98 100644
--- a/llvm/test/CodeGen/RISCV/inline-asm-mem-constraint.ll
+++ b/llvm/test/CodeGen/RISCV/inline-asm-mem-constraint.ll
@@ -796,7 +796,7 @@ define i32 @constraint_m_with_callbr_multi_operands(i32 %a) 
{
 ; RV32I-NO-INTEGRATED-NEXT:  # %bb.1: # %normal
 ; RV32I-NO-INTEGRATED-NEXT:    li a0, 0
 ; RV32I-NO-INTEGRATED-NEXT:    ret
-; RV32I-NO-INTEGRATED-NEXT:  .LBB14_2: # Block address taken
+; RV32I-NO-INTEGRATED-NEXT:  .LBB14_2: # Inline asm indirect target
 ; RV32I-NO-INTEGRATED-NEXT:    # %fail
 ; RV32I-NO-INTEGRATED-NEXT:    # Label of block must be emitted
 ; RV32I-NO-INTEGRATED-NEXT:    li a0, 1
@@ -811,7 +811,7 @@ define i32 @constraint_m_with_callbr_multi_operands(i32 %a) 
{
 ; RV64I-NO-INTEGRATED-NEXT:  # %bb.1: # %normal
 ; RV64I-NO-INTEGRATED-NEXT:    li a0, 0
 ; RV64I-NO-INTEGRATED-NEXT:    ret
-; RV64I-NO-INTEGRATED-NEXT:  .LBB14_2: # Block address taken
+; RV64I-NO-INTEGRATED-NEXT:  .LBB14_2: # Inline asm indirect target
 ; RV64I-NO-INTEGRATED-NEXT:    # %fail
 ; RV64I-NO-INTEGRATED-NEXT:    # Label of block must be emitted
 ; RV64I-NO-INTEGRATED-NEXT:    li a0, 1
@@ -827,7 +827,7 @@ define i32 @constraint_m_with_callbr_multi_operands(i32 %a) 
{
 ; RV32I-MEDIUM-NO-INTEGRATED-NEXT:  # %bb.1: # %normal
 ; RV32I-MEDIUM-NO-INTEGRATED-NEXT:    li a0, 0
 ; RV32I-MEDIUM-NO-INTEGRATED-NEXT:    ret
-; RV32I-MEDIUM-NO-INTEGRATED-NEXT:  .LBB14_2: # Block address taken
+; RV32I-MEDIUM-NO-INTEGRATED-NEXT:  .LBB14_2: # Inline asm indirect target
 ; RV32I-MEDIUM-NO-INTEGRATED-NEXT:    # %fail
 ; RV32I-MEDIUM-NO-INTEGRATED-NEXT:    # Label of block must be emitted
 ; RV32I-MEDIUM-NO-INTEGRATED-NEXT:    li a0, 1
@@ -843,7 +843,7 @@ define i32 @constraint_m_with_callbr_multi_operands(i32 %a) 
{
 ; RV64I-MEDIUM-NO-INTEGRATED-NEXT:  # %bb.1: # %normal
 ; RV64I-MEDIUM-NO-INTEGRATED-NEXT:    li a0, 0
 ; RV64I-MEDIUM-NO-INTEGRATED-NEXT:    ret
-; RV64I-MEDIUM-NO-INTEGRATED-NEXT:  .LBB14_2: # Block address taken
+; RV64I-MEDIUM-NO-INTEGRATED-NEXT:  .LBB14_2: # Inline asm indirect target
 ; RV64I-MEDIUM-NO-INTEGRATED-NEXT:    # %fail
 ; RV64I-MEDIUM-NO-INTEGRATED-NEXT:    # Label of block must be emitted
 ; RV64I-MEDIUM-NO-INTEGRATED-NEXT:    li a0, 1
@@ -860,7 +860,7 @@ define i32 @constraint_m_with_callbr_multi_operands(i32 %a) 
{
 ; RV64I-LARGE-NO-INTEGRATED-NEXT:  # %bb.1: # %normal
 ; RV64I-LARGE-NO-INTEGRATED-NEXT:    li a0, 0
 ; RV64I-LARGE-NO-INTEGRATED-NEXT:    ret
-; RV64I-LARGE-NO-INTEGRATED-NEXT:  .LBB14_2: # Block address taken
+; RV64I-LARGE-NO-INTEGRATED-NEXT:  .LBB14_2: # Inline asm indirect target
 ; RV64I-LARGE-NO-INTEGRATED-NEXT:    # %fail
 ; RV64I-LARGE-NO-INTEGRATED-NEXT:    # Label of block must be emitted
 ; RV64I-LARGE-NO-INTEGRATED-NEXT:    li a0, 1
@@ -877,7 +877,7 @@ define i32 @constraint_m_with_callbr_multi_operands(i32 %a) 
{
 ; RV32I-INTEGRATED-NEXT:  # %bb.1: # %normal
 ; RV32I-INTEGRATED-NEXT:    li a0, 0
 ; RV32I-INTEGRATED-NEXT:    ret
-; RV32I-INTEGRATED-NEXT:  .LBB14_2: # Block address taken
+; RV32I-INTEGRATED-NEXT:  .LBB14_2: # Inline asm indirect target
 ; RV32I-INTEGRATED-NEXT:    # %fail
 ; RV32I-INTEGRATED-NEXT:    # Label of block must be emitted
 ; RV32I-INTEGRATED-NEXT:    li a0, 1
@@ -894,7 +894,7 @@ define i32 @constraint_m_with_callbr_multi_operands(i32 %a) 
{
 ; RV64I-INTEGRATED-NEXT:  # %bb.1: # %normal
 ; RV64I-INTEGRATED-NEXT:    li a0, 0
 ; RV64I-INTEGRATED-NEXT:    ret
-; RV64I-INTEGRATED-NEXT:  .LBB14_2: # Block address taken
+; RV64I-INTEGRATED-NEXT:  .LBB14_2: # Inline asm indirect target
 ; RV64I-INTEGRATED-NEXT:    # %fail
 ; RV64I-INTEGRATED-NEXT:    # Label of block must be emitted
 ; RV64I-INTEGRATED-NEXT:    li a0, 1
@@ -912,7 +912,7 @@ define i32 @constraint_m_with_callbr_multi_operands(i32 %a) 
{
 ; RV32I-MEDIUM-INTEGRATED-NEXT:  # %bb.1: # %normal
 ; RV32I-MEDIUM-INTEGRATED-NEXT:    li a0, 0
 ; RV32I-MEDIUM-INTEGRATED-NEXT:    ret
-; RV32I-MEDIUM-INTEGRATED-NEXT:  .LBB14_2: # Block address taken
+; RV32I-MEDIUM-INTEGRATED-NEXT:  .LBB14_2: # Inline asm indirect target
 ; RV32I-MEDIUM-INTEGRATED-NEXT:    # %fail
 ; RV32I-MEDIUM-INTEGRATED-NEXT:    # Label of block must be emitted
 ; RV32I-MEDIUM-INTEGRATED-NEXT:    li a0, 1
@@ -930,7 +930,7 @@ define i32 @constraint_m_with_callbr_multi_operands(i32 %a) 
{
 ; RV64I-MEDIUM-INTEGRATED-NEXT:  # %bb.1: # %normal
 ; RV64I-MEDIUM-INTEGRATED-NEXT:    li a0, 0
 ; RV64I-MEDIUM-INTEGRATED-NEXT:    ret
-; RV64I-MEDIUM-INTEGRATED-NEXT:  .LBB14_2: # Block address taken
+; RV64I-MEDIUM-INTEGRATED-NEXT:  .LBB14_2: # Inline asm indirect target
 ; RV64I-MEDIUM-INTEGRATED-NEXT:    # %fail
 ; RV64I-MEDIUM-INTEGRATED-NEXT:    # Label of block must be emitted
 ; RV64I-MEDIUM-INTEGRATED-NEXT:    li a0, 1
@@ -949,7 +949,7 @@ define i32 @constraint_m_with_callbr_multi_operands(i32 %a) 
{
 ; RV64I-LARGE-INTEGRATED-NEXT:  # %bb.1: # %normal
 ; RV64I-LARGE-INTEGRATED-NEXT:    li a0, 0
 ; RV64I-LARGE-INTEGRATED-NEXT:    ret
-; RV64I-LARGE-INTEGRATED-NEXT:  .LBB14_2: # Block address taken
+; RV64I-LARGE-INTEGRATED-NEXT:  .LBB14_2: # Inline asm indirect target
 ; RV64I-LARGE-INTEGRATED-NEXT:    # %fail
 ; RV64I-LARGE-INTEGRATED-NEXT:    # Label of block must be emitted
 ; RV64I-LARGE-INTEGRATED-NEXT:    li a0, 1
@@ -978,7 +978,7 @@ define i32 @constraint_m_with_multi_callbr_asm(i32 %a) {
 ; RV32I-NO-INTEGRATED-NEXT:  # %bb.2: # %normal1
 ; RV32I-NO-INTEGRATED-NEXT:    li a0, 0
 ; RV32I-NO-INTEGRATED-NEXT:    ret
-; RV32I-NO-INTEGRATED-NEXT:  .LBB15_3: # Block address taken
+; RV32I-NO-INTEGRATED-NEXT:  .LBB15_3: # Inline asm indirect target
 ; RV32I-NO-INTEGRATED-NEXT:    # %fail
 ; RV32I-NO-INTEGRATED-NEXT:    # Label of block must be emitted
 ; RV32I-NO-INTEGRATED-NEXT:    li a0, 1
@@ -997,7 +997,7 @@ define i32 @constraint_m_with_multi_callbr_asm(i32 %a) {
 ; RV64I-NO-INTEGRATED-NEXT:  # %bb.2: # %normal1
 ; RV64I-NO-INTEGRATED-NEXT:    li a0, 0
 ; RV64I-NO-INTEGRATED-NEXT:    ret
-; RV64I-NO-INTEGRATED-NEXT:  .LBB15_3: # Block address taken
+; RV64I-NO-INTEGRATED-NEXT:  .LBB15_3: # Inline asm indirect target
 ; RV64I-NO-INTEGRATED-NEXT:    # %fail
 ; RV64I-NO-INTEGRATED-NEXT:    # Label of block must be emitted
 ; RV64I-NO-INTEGRATED-NEXT:    li a0, 1
@@ -1017,7 +1017,7 @@ define i32 @constraint_m_with_multi_callbr_asm(i32 %a) {
 ; RV32I-MEDIUM-NO-INTEGRATED-NEXT:  # %bb.2: # %normal1
 ; RV32I-MEDIUM-NO-INTEGRATED-NEXT:    li a0, 0
 ; RV32I-MEDIUM-NO-INTEGRATED-NEXT:    ret
-; RV32I-MEDIUM-NO-INTEGRATED-NEXT:  .LBB15_3: # Block address taken
+; RV32I-MEDIUM-NO-INTEGRATED-NEXT:  .LBB15_3: # Inline asm indirect target
 ; RV32I-MEDIUM-NO-INTEGRATED-NEXT:    # %fail
 ; RV32I-MEDIUM-NO-INTEGRATED-NEXT:    # Label of block must be emitted
 ; RV32I-MEDIUM-NO-INTEGRATED-NEXT:    li a0, 1
@@ -1037,7 +1037,7 @@ define i32 @constraint_m_with_multi_callbr_asm(i32 %a) {
 ; RV64I-MEDIUM-NO-INTEGRATED-NEXT:  # %bb.2: # %normal1
 ; RV64I-MEDIUM-NO-INTEGRATED-NEXT:    li a0, 0
 ; RV64I-MEDIUM-NO-INTEGRATED-NEXT:    ret
-; RV64I-MEDIUM-NO-INTEGRATED-NEXT:  .LBB15_3: # Block address taken
+; RV64I-MEDIUM-NO-INTEGRATED-NEXT:  .LBB15_3: # Inline asm indirect target
 ; RV64I-MEDIUM-NO-INTEGRATED-NEXT:    # %fail
 ; RV64I-MEDIUM-NO-INTEGRATED-NEXT:    # Label of block must be emitted
 ; RV64I-MEDIUM-NO-INTEGRATED-NEXT:    li a0, 1
@@ -1058,7 +1058,7 @@ define i32 @constraint_m_with_multi_callbr_asm(i32 %a) {
 ; RV64I-LARGE-NO-INTEGRATED-NEXT:  # %bb.2: # %normal1
 ; RV64I-LARGE-NO-INTEGRATED-NEXT:    li a0, 0
 ; RV64I-LARGE-NO-INTEGRATED-NEXT:    ret
-; RV64I-LARGE-NO-INTEGRATED-NEXT:  .LBB15_3: # Block address taken
+; RV64I-LARGE-NO-INTEGRATED-NEXT:  .LBB15_3: # Inline asm indirect target
 ; RV64I-LARGE-NO-INTEGRATED-NEXT:    # %fail
 ; RV64I-LARGE-NO-INTEGRATED-NEXT:    # Label of block must be emitted
 ; RV64I-LARGE-NO-INTEGRATED-NEXT:    li a0, 1
@@ -1079,7 +1079,7 @@ define i32 @constraint_m_with_multi_callbr_asm(i32 %a) {
 ; RV32I-INTEGRATED-NEXT:  # %bb.2: # %normal1
 ; RV32I-INTEGRATED-NEXT:    li a0, 0
 ; RV32I-INTEGRATED-NEXT:    ret
-; RV32I-INTEGRATED-NEXT:  .LBB15_3: # Block address taken
+; RV32I-INTEGRATED-NEXT:  .LBB15_3: # Inline asm indirect target
 ; RV32I-INTEGRATED-NEXT:    # %fail
 ; RV32I-INTEGRATED-NEXT:    # Label of block must be emitted
 ; RV32I-INTEGRATED-NEXT:    li a0, 1
@@ -1100,7 +1100,7 @@ define i32 @constraint_m_with_multi_callbr_asm(i32 %a) {
 ; RV64I-INTEGRATED-NEXT:  # %bb.2: # %normal1
 ; RV64I-INTEGRATED-NEXT:    li a0, 0
 ; RV64I-INTEGRATED-NEXT:    ret
-; RV64I-INTEGRATED-NEXT:  .LBB15_3: # Block address taken
+; RV64I-INTEGRATED-NEXT:  .LBB15_3: # Inline asm indirect target
 ; RV64I-INTEGRATED-NEXT:    # %fail
 ; RV64I-INTEGRATED-NEXT:    # Label of block must be emitted
 ; RV64I-INTEGRATED-NEXT:    li a0, 1
@@ -1122,7 +1122,7 @@ define i32 @constraint_m_with_multi_callbr_asm(i32 %a) {
 ; RV32I-MEDIUM-INTEGRATED-NEXT:  # %bb.2: # %normal1
 ; RV32I-MEDIUM-INTEGRATED-NEXT:    li a0, 0
 ; RV32I-MEDIUM-INTEGRATED-NEXT:    ret
-; RV32I-MEDIUM-INTEGRATED-NEXT:  .LBB15_3: # Block address taken
+; RV32I-MEDIUM-INTEGRATED-NEXT:  .LBB15_3: # Inline asm indirect target
 ; RV32I-MEDIUM-INTEGRATED-NEXT:    # %fail
 ; RV32I-MEDIUM-INTEGRATED-NEXT:    # Label of block must be emitted
 ; RV32I-MEDIUM-INTEGRATED-NEXT:    li a0, 1
@@ -1144,7 +1144,7 @@ define i32 @constraint_m_with_multi_callbr_asm(i32 %a) {
 ; RV64I-MEDIUM-INTEGRATED-NEXT:  # %bb.2: # %normal1
 ; RV64I-MEDIUM-INTEGRATED-NEXT:    li a0, 0
 ; RV64I-MEDIUM-INTEGRATED-NEXT:    ret
-; RV64I-MEDIUM-INTEGRATED-NEXT:  .LBB15_3: # Block address taken
+; RV64I-MEDIUM-INTEGRATED-NEXT:  .LBB15_3: # Inline asm indirect target
 ; RV64I-MEDIUM-INTEGRATED-NEXT:    # %fail
 ; RV64I-MEDIUM-INTEGRATED-NEXT:    # Label of block must be emitted
 ; RV64I-MEDIUM-INTEGRATED-NEXT:    li a0, 1
@@ -1167,7 +1167,7 @@ define i32 @constraint_m_with_multi_callbr_asm(i32 %a) {
 ; RV64I-LARGE-INTEGRATED-NEXT:  # %bb.2: # %normal1
 ; RV64I-LARGE-INTEGRATED-NEXT:    li a0, 0
 ; RV64I-LARGE-INTEGRATED-NEXT:    ret
-; RV64I-LARGE-INTEGRATED-NEXT:  .LBB15_3: # Block address taken
+; RV64I-LARGE-INTEGRATED-NEXT:  .LBB15_3: # Inline asm indirect target
 ; RV64I-LARGE-INTEGRATED-NEXT:    # %fail
 ; RV64I-LARGE-INTEGRATED-NEXT:    # Label of block must be emitted
 ; RV64I-LARGE-INTEGRATED-NEXT:    li a0, 1
@@ -1678,7 +1678,7 @@ define i32 @constraint_o_with_callbr_multi_operands(i32 
%a) {
 ; RV32I-NO-INTEGRATED-NEXT:  # %bb.1: # %normal
 ; RV32I-NO-INTEGRATED-NEXT:    li a0, 0
 ; RV32I-NO-INTEGRATED-NEXT:    ret
-; RV32I-NO-INTEGRATED-NEXT:  .LBB26_2: # Block address taken
+; RV32I-NO-INTEGRATED-NEXT:  .LBB26_2: # Inline asm indirect target
 ; RV32I-NO-INTEGRATED-NEXT:    # %fail
 ; RV32I-NO-INTEGRATED-NEXT:    # Label of block must be emitted
 ; RV32I-NO-INTEGRATED-NEXT:    li a0, 1
@@ -1693,7 +1693,7 @@ define i32 @constraint_o_with_callbr_multi_operands(i32 
%a) {
 ; RV64I-NO-INTEGRATED-NEXT:  # %bb.1: # %normal
 ; RV64I-NO-INTEGRATED-NEXT:    li a0, 0
 ; RV64I-NO-INTEGRATED-NEXT:    ret
-; RV64I-NO-INTEGRATED-NEXT:  .LBB26_2: # Block address taken
+; RV64I-NO-INTEGRATED-NEXT:  .LBB26_2: # Inline asm indirect target
 ; RV64I-NO-INTEGRATED-NEXT:    # %fail
 ; RV64I-NO-INTEGRATED-NEXT:    # Label of block must be emitted
 ; RV64I-NO-INTEGRATED-NEXT:    li a0, 1
@@ -1709,7 +1709,7 @@ define i32 @constraint_o_with_callbr_multi_operands(i32 
%a) {
 ; RV32I-MEDIUM-NO-INTEGRATED-NEXT:  # %bb.1: # %normal
 ; RV32I-MEDIUM-NO-INTEGRATED-NEXT:    li a0, 0
 ; RV32I-MEDIUM-NO-INTEGRATED-NEXT:    ret
-; RV32I-MEDIUM-NO-INTEGRATED-NEXT:  .LBB26_2: # Block address taken
+; RV32I-MEDIUM-NO-INTEGRATED-NEXT:  .LBB26_2: # Inline asm indirect target
 ; RV32I-MEDIUM-NO-INTEGRATED-NEXT:    # %fail
 ; RV32I-MEDIUM-NO-INTEGRATED-NEXT:    # Label of block must be emitted
 ; RV32I-MEDIUM-NO-INTEGRATED-NEXT:    li a0, 1
@@ -1725,7 +1725,7 @@ define i32 @constraint_o_with_callbr_multi_operands(i32 
%a) {
 ; RV64I-MEDIUM-NO-INTEGRATED-NEXT:  # %bb.1: # %normal
 ; RV64I-MEDIUM-NO-INTEGRATED-NEXT:    li a0, 0
 ; RV64I-MEDIUM-NO-INTEGRATED-NEXT:    ret
-; RV64I-MEDIUM-NO-INTEGRATED-NEXT:  .LBB26_2: # Block address taken
+; RV64I-MEDIUM-NO-INTEGRATED-NEXT:  .LBB26_2: # Inline asm indirect target
 ; RV64I-MEDIUM-NO-INTEGRATED-NEXT:    # %fail
 ; RV64I-MEDIUM-NO-INTEGRATED-NEXT:    # Label of block must be emitted
 ; RV64I-MEDIUM-NO-INTEGRATED-NEXT:    li a0, 1
@@ -1742,7 +1742,7 @@ define i32 @constraint_o_with_callbr_multi_operands(i32 
%a) {
 ; RV64I-LARGE-NO-INTEGRATED-NEXT:  # %bb.1: # %normal
 ; RV64I-LARGE-NO-INTEGRATED-NEXT:    li a0, 0
 ; RV64I-LARGE-NO-INTEGRATED-NEXT:    ret
-; RV64I-LARGE-NO-INTEGRATED-NEXT:  .LBB26_2: # Block address taken
+; RV64I-LARGE-NO-INTEGRATED-NEXT:  .LBB26_2: # Inline asm indirect target
 ; RV64I-LARGE-NO-INTEGRATED-NEXT:    # %fail
 ; RV64I-LARGE-NO-INTEGRATED-NEXT:    # Label of block must be emitted
 ; RV64I-LARGE-NO-INTEGRATED-NEXT:    li a0, 1
@@ -1759,7 +1759,7 @@ define i32 @constraint_o_with_callbr_multi_operands(i32 
%a) {
 ; RV32I-INTEGRATED-NEXT:  # %bb.1: # %normal
 ; RV32I-INTEGRATED-NEXT:    li a0, 0
 ; RV32I-INTEGRATED-NEXT:    ret
-; RV32I-INTEGRATED-NEXT:  .LBB26_2: # Block address taken
+; RV32I-INTEGRATED-NEXT:  .LBB26_2: # Inline asm indirect target
 ; RV32I-INTEGRATED-NEXT:    # %fail
 ; RV32I-INTEGRATED-NEXT:    # Label of block must be emitted
 ; RV32I-INTEGRATED-NEXT:    li a0, 1
@@ -1776,7 +1776,7 @@ define i32 @constraint_o_with_callbr_multi_operands(i32 
%a) {
 ; RV64I-INTEGRATED-NEXT:  # %bb.1: # %normal
 ; RV64I-INTEGRATED-NEXT:    li a0, 0
 ; RV64I-INTEGRATED-NEXT:    ret
-; RV64I-INTEGRATED-NEXT:  .LBB26_2: # Block address taken
+; RV64I-INTEGRATED-NEXT:  .LBB26_2: # Inline asm indirect target
 ; RV64I-INTEGRATED-NEXT:    # %fail
 ; RV64I-INTEGRATED-NEXT:    # Label of block must be emitted
 ; RV64I-INTEGRATED-NEXT:    li a0, 1
@@ -1794,7 +1794,7 @@ define i32 @constraint_o_with_callbr_multi_operands(i32 
%a) {
 ; RV32I-MEDIUM-INTEGRATED-NEXT:  # %bb.1: # %normal
 ; RV32I-MEDIUM-INTEGRATED-NEXT:    li a0, 0
 ; RV32I-MEDIUM-INTEGRATED-NEXT:    ret
-; RV32I-MEDIUM-INTEGRATED-NEXT:  .LBB26_2: # Block address taken
+; RV32I-MEDIUM-INTEGRATED-NEXT:  .LBB26_2: # Inline asm indirect target
 ; RV32I-MEDIUM-INTEGRATED-NEXT:    # %fail
 ; RV32I-MEDIUM-INTEGRATED-NEXT:    # Label of block must be emitted
 ; RV32I-MEDIUM-INTEGRATED-NEXT:    li a0, 1
@@ -1812,7 +1812,7 @@ define i32 @constraint_o_with_callbr_multi_operands(i32 
%a) {
 ; RV64I-MEDIUM-INTEGRATED-NEXT:  # %bb.1: # %normal
 ; RV64I-MEDIUM-INTEGRATED-NEXT:    li a0, 0
 ; RV64I-MEDIUM-INTEGRATED-NEXT:    ret
-; RV64I-MEDIUM-INTEGRATED-NEXT:  .LBB26_2: # Block address taken
+; RV64I-MEDIUM-INTEGRATED-NEXT:  .LBB26_2: # Inline asm indirect target
 ; RV64I-MEDIUM-INTEGRATED-NEXT:    # %fail
 ; RV64I-MEDIUM-INTEGRATED-NEXT:    # Label of block must be emitted
 ; RV64I-MEDIUM-INTEGRATED-NEXT:    li a0, 1
@@ -1831,7 +1831,7 @@ define i32 @constraint_o_with_callbr_multi_operands(i32 
%a) {
 ; RV64I-LARGE-INTEGRATED-NEXT:  # %bb.1: # %normal
 ; RV64I-LARGE-INTEGRATED-NEXT:    li a0, 0
 ; RV64I-LARGE-INTEGRATED-NEXT:    ret
-; RV64I-LARGE-INTEGRATED-NEXT:  .LBB26_2: # Block address taken
+; RV64I-LARGE-INTEGRATED-NEXT:  .LBB26_2: # Inline asm indirect target
 ; RV64I-LARGE-INTEGRATED-NEXT:    # %fail
 ; RV64I-LARGE-INTEGRATED-NEXT:    # Label of block must be emitted
 ; RV64I-LARGE-INTEGRATED-NEXT:    li a0, 1
@@ -1860,7 +1860,7 @@ define i32 @constraint_o_with_multi_callbr_asm(i32 %a) {
 ; RV32I-NO-INTEGRATED-NEXT:  # %bb.2: # %normal1
 ; RV32I-NO-INTEGRATED-NEXT:    li a0, 0
 ; RV32I-NO-INTEGRATED-NEXT:    ret
-; RV32I-NO-INTEGRATED-NEXT:  .LBB27_3: # Block address taken
+; RV32I-NO-INTEGRATED-NEXT:  .LBB27_3: # Inline asm indirect target
 ; RV32I-NO-INTEGRATED-NEXT:    # %fail
 ; RV32I-NO-INTEGRATED-NEXT:    # Label of block must be emitted
 ; RV32I-NO-INTEGRATED-NEXT:    li a0, 1
@@ -1879,7 +1879,7 @@ define i32 @constraint_o_with_multi_callbr_asm(i32 %a) {
 ; RV64I-NO-INTEGRATED-NEXT:  # %bb.2: # %normal1
 ; RV64I-NO-INTEGRATED-NEXT:    li a0, 0
 ; RV64I-NO-INTEGRATED-NEXT:    ret
-; RV64I-NO-INTEGRATED-NEXT:  .LBB27_3: # Block address taken
+; RV64I-NO-INTEGRATED-NEXT:  .LBB27_3: # Inline asm indirect target
 ; RV64I-NO-INTEGRATED-NEXT:    # %fail
 ; RV64I-NO-INTEGRATED-NEXT:    # Label of block must be emitted
 ; RV64I-NO-INTEGRATED-NEXT:    li a0, 1
@@ -1899,7 +1899,7 @@ define i32 @constraint_o_with_multi_callbr_asm(i32 %a) {
 ; RV32I-MEDIUM-NO-INTEGRATED-NEXT:  # %bb.2: # %normal1
 ; RV32I-MEDIUM-NO-INTEGRATED-NEXT:    li a0, 0
 ; RV32I-MEDIUM-NO-INTEGRATED-NEXT:    ret
-; RV32I-MEDIUM-NO-INTEGRATED-NEXT:  .LBB27_3: # Block address taken
+; RV32I-MEDIUM-NO-INTEGRATED-NEXT:  .LBB27_3: # Inline asm indirect target
 ; RV32I-MEDIUM-NO-INTEGRATED-NEXT:    # %fail
 ; RV32I-MEDIUM-NO-INTEGRATED-NEXT:    # Label of block must be emitted
 ; RV32I-MEDIUM-NO-INTEGRATED-NEXT:    li a0, 1
@@ -1919,7 +1919,7 @@ define i32 @constraint_o_with_multi_callbr_asm(i32 %a) {
 ; RV64I-MEDIUM-NO-INTEGRATED-NEXT:  # %bb.2: # %normal1
 ; RV64I-MEDIUM-NO-INTEGRATED-NEXT:    li a0, 0
 ; RV64I-MEDIUM-NO-INTEGRATED-NEXT:    ret
-; RV64I-MEDIUM-NO-INTEGRATED-NEXT:  .LBB27_3: # Block address taken
+; RV64I-MEDIUM-NO-INTEGRATED-NEXT:  .LBB27_3: # Inline asm indirect target
 ; RV64I-MEDIUM-NO-INTEGRATED-NEXT:    # %fail
 ; RV64I-MEDIUM-NO-INTEGRATED-NEXT:    # Label of block must be emitted
 ; RV64I-MEDIUM-NO-INTEGRATED-NEXT:    li a0, 1
@@ -1940,7 +1940,7 @@ define i32 @constraint_o_with_multi_callbr_asm(i32 %a) {
 ; RV64I-LARGE-NO-INTEGRATED-NEXT:  # %bb.2: # %normal1
 ; RV64I-LARGE-NO-INTEGRATED-NEXT:    li a0, 0
 ; RV64I-LARGE-NO-INTEGRATED-NEXT:    ret
-; RV64I-LARGE-NO-INTEGRATED-NEXT:  .LBB27_3: # Block address taken
+; RV64I-LARGE-NO-INTEGRATED-NEXT:  .LBB27_3: # Inline asm indirect target
 ; RV64I-LARGE-NO-INTEGRATED-NEXT:    # %fail
 ; RV64I-LARGE-NO-INTEGRATED-NEXT:    # Label of block must be emitted
 ; RV64I-LARGE-NO-INTEGRATED-NEXT:    li a0, 1
@@ -1961,7 +1961,7 @@ define i32 @constraint_o_with_multi_callbr_asm(i32 %a) {
 ; RV32I-INTEGRATED-NEXT:  # %bb.2: # %normal1
 ; RV32I-INTEGRATED-NEXT:    li a0, 0
 ; RV32I-INTEGRATED-NEXT:    ret
-; RV32I-INTEGRATED-NEXT:  .LBB27_3: # Block address taken
+; RV32I-INTEGRATED-NEXT:  .LBB27_3: # Inline asm indirect target
 ; RV32I-INTEGRATED-NEXT:    # %fail
 ; RV32I-INTEGRATED-NEXT:    # Label of block must be emitted
 ; RV32I-INTEGRATED-NEXT:    li a0, 1
@@ -1982,7 +1982,7 @@ define i32 @constraint_o_with_multi_callbr_asm(i32 %a) {
 ; RV64I-INTEGRATED-NEXT:  # %bb.2: # %normal1
 ; RV64I-INTEGRATED-NEXT:    li a0, 0
 ; RV64I-INTEGRATED-NEXT:    ret
-; RV64I-INTEGRATED-NEXT:  .LBB27_3: # Block address taken
+; RV64I-INTEGRATED-NEXT:  .LBB27_3: # Inline asm indirect target
 ; RV64I-INTEGRATED-NEXT:    # %fail
 ; RV64I-INTEGRATED-NEXT:    # Label of block must be emitted
 ; RV64I-INTEGRATED-NEXT:    li a0, 1
@@ -2004,7 +2004,7 @@ define i32 @constraint_o_with_multi_callbr_asm(i32 %a) {
 ; RV32I-MEDIUM-INTEGRATED-NEXT:  # %bb.2: # %normal1
 ; RV32I-MEDIUM-INTEGRATED-NEXT:    li a0, 0
 ; RV32I-MEDIUM-INTEGRATED-NEXT:    ret
-; RV32I-MEDIUM-INTEGRATED-NEXT:  .LBB27_3: # Block address taken
+; RV32I-MEDIUM-INTEGRATED-NEXT:  .LBB27_3: # Inline asm indirect target
 ; RV32I-MEDIUM-INTEGRATED-NEXT:    # %fail
 ; RV32I-MEDIUM-INTEGRATED-NEXT:    # Label of block must be emitted
 ; RV32I-MEDIUM-INTEGRATED-NEXT:    li a0, 1
@@ -2026,7 +2026,7 @@ define i32 @constraint_o_with_multi_callbr_asm(i32 %a) {
 ; RV64I-MEDIUM-INTEGRATED-NEXT:  # %bb.2: # %normal1
 ; RV64I-MEDIUM-INTEGRATED-NEXT:    li a0, 0
 ; RV64I-MEDIUM-INTEGRATED-NEXT:    ret
-; RV64I-MEDIUM-INTEGRATED-NEXT:  .LBB27_3: # Block address taken
+; RV64I-MEDIUM-INTEGRATED-NEXT:  .LBB27_3: # Inline asm indirect target
 ; RV64I-MEDIUM-INTEGRATED-NEXT:    # %fail
 ; RV64I-MEDIUM-INTEGRATED-NEXT:    # Label of block must be emitted
 ; RV64I-MEDIUM-INTEGRATED-NEXT:    li a0, 1
@@ -2049,7 +2049,7 @@ define i32 @constraint_o_with_multi_callbr_asm(i32 %a) {
 ; RV64I-LARGE-INTEGRATED-NEXT:  # %bb.2: # %normal1
 ; RV64I-LARGE-INTEGRATED-NEXT:    li a0, 0
 ; RV64I-LARGE-INTEGRATED-NEXT:    ret
-; RV64I-LARGE-INTEGRATED-NEXT:  .LBB27_3: # Block address taken
+; RV64I-LARGE-INTEGRATED-NEXT:  .LBB27_3: # Inline asm indirect target
 ; RV64I-LARGE-INTEGRATED-NEXT:    # %fail
 ; RV64I-LARGE-INTEGRATED-NEXT:    # Label of block must be emitted
 ; RV64I-LARGE-INTEGRATED-NEXT:    li a0, 1
@@ -2757,7 +2757,7 @@ define i32 @constraint_A_with_callbr_multi_operands(i32 
%a) {
 ; RV32I-NO-INTEGRATED-NEXT:  # %bb.1: # %normal
 ; RV32I-NO-INTEGRATED-NEXT:    li a0, 0
 ; RV32I-NO-INTEGRATED-NEXT:    ret
-; RV32I-NO-INTEGRATED-NEXT:  .LBB40_2: # Block address taken
+; RV32I-NO-INTEGRATED-NEXT:  .LBB40_2: # Inline asm indirect target
 ; RV32I-NO-INTEGRATED-NEXT:    # %fail
 ; RV32I-NO-INTEGRATED-NEXT:    # Label of block must be emitted
 ; RV32I-NO-INTEGRATED-NEXT:    li a0, 1
@@ -2773,7 +2773,7 @@ define i32 @constraint_A_with_callbr_multi_operands(i32 
%a) {
 ; RV64I-NO-INTEGRATED-NEXT:  # %bb.1: # %normal
 ; RV64I-NO-INTEGRATED-NEXT:    li a0, 0
 ; RV64I-NO-INTEGRATED-NEXT:    ret
-; RV64I-NO-INTEGRATED-NEXT:  .LBB40_2: # Block address taken
+; RV64I-NO-INTEGRATED-NEXT:  .LBB40_2: # Inline asm indirect target
 ; RV64I-NO-INTEGRATED-NEXT:    # %fail
 ; RV64I-NO-INTEGRATED-NEXT:    # Label of block must be emitted
 ; RV64I-NO-INTEGRATED-NEXT:    li a0, 1
@@ -2790,7 +2790,7 @@ define i32 @constraint_A_with_callbr_multi_operands(i32 
%a) {
 ; RV32I-MEDIUM-NO-INTEGRATED-NEXT:  # %bb.1: # %normal
 ; RV32I-MEDIUM-NO-INTEGRATED-NEXT:    li a0, 0
 ; RV32I-MEDIUM-NO-INTEGRATED-NEXT:    ret
-; RV32I-MEDIUM-NO-INTEGRATED-NEXT:  .LBB40_2: # Block address taken
+; RV32I-MEDIUM-NO-INTEGRATED-NEXT:  .LBB40_2: # Inline asm indirect target
 ; RV32I-MEDIUM-NO-INTEGRATED-NEXT:    # %fail
 ; RV32I-MEDIUM-NO-INTEGRATED-NEXT:    # Label of block must be emitted
 ; RV32I-MEDIUM-NO-INTEGRATED-NEXT:    li a0, 1
@@ -2807,7 +2807,7 @@ define i32 @constraint_A_with_callbr_multi_operands(i32 
%a) {
 ; RV64I-MEDIUM-NO-INTEGRATED-NEXT:  # %bb.1: # %normal
 ; RV64I-MEDIUM-NO-INTEGRATED-NEXT:    li a0, 0
 ; RV64I-MEDIUM-NO-INTEGRATED-NEXT:    ret
-; RV64I-MEDIUM-NO-INTEGRATED-NEXT:  .LBB40_2: # Block address taken
+; RV64I-MEDIUM-NO-INTEGRATED-NEXT:  .LBB40_2: # Inline asm indirect target
 ; RV64I-MEDIUM-NO-INTEGRATED-NEXT:    # %fail
 ; RV64I-MEDIUM-NO-INTEGRATED-NEXT:    # Label of block must be emitted
 ; RV64I-MEDIUM-NO-INTEGRATED-NEXT:    li a0, 1
@@ -2824,7 +2824,7 @@ define i32 @constraint_A_with_callbr_multi_operands(i32 
%a) {
 ; RV64I-LARGE-NO-INTEGRATED-NEXT:  # %bb.1: # %normal
 ; RV64I-LARGE-NO-INTEGRATED-NEXT:    li a0, 0
 ; RV64I-LARGE-NO-INTEGRATED-NEXT:    ret
-; RV64I-LARGE-NO-INTEGRATED-NEXT:  .LBB40_2: # Block address taken
+; RV64I-LARGE-NO-INTEGRATED-NEXT:  .LBB40_2: # Inline asm indirect target
 ; RV64I-LARGE-NO-INTEGRATED-NEXT:    # %fail
 ; RV64I-LARGE-NO-INTEGRATED-NEXT:    # Label of block must be emitted
 ; RV64I-LARGE-NO-INTEGRATED-NEXT:    li a0, 1
@@ -2842,7 +2842,7 @@ define i32 @constraint_A_with_callbr_multi_operands(i32 
%a) {
 ; RV32I-INTEGRATED-NEXT:  # %bb.1: # %normal
 ; RV32I-INTEGRATED-NEXT:    li a0, 0
 ; RV32I-INTEGRATED-NEXT:    ret
-; RV32I-INTEGRATED-NEXT:  .LBB40_2: # Block address taken
+; RV32I-INTEGRATED-NEXT:  .LBB40_2: # Inline asm indirect target
 ; RV32I-INTEGRATED-NEXT:    # %fail
 ; RV32I-INTEGRATED-NEXT:    # Label of block must be emitted
 ; RV32I-INTEGRATED-NEXT:    li a0, 1
@@ -2860,7 +2860,7 @@ define i32 @constraint_A_with_callbr_multi_operands(i32 
%a) {
 ; RV64I-INTEGRATED-NEXT:  # %bb.1: # %normal
 ; RV64I-INTEGRATED-NEXT:    li a0, 0
 ; RV64I-INTEGRATED-NEXT:    ret
-; RV64I-INTEGRATED-NEXT:  .LBB40_2: # Block address taken
+; RV64I-INTEGRATED-NEXT:  .LBB40_2: # Inline asm indirect target
 ; RV64I-INTEGRATED-NEXT:    # %fail
 ; RV64I-INTEGRATED-NEXT:    # Label of block must be emitted
 ; RV64I-INTEGRATED-NEXT:    li a0, 1
@@ -2879,7 +2879,7 @@ define i32 @constraint_A_with_callbr_multi_operands(i32 
%a) {
 ; RV32I-MEDIUM-INTEGRATED-NEXT:  # %bb.1: # %normal
 ; RV32I-MEDIUM-INTEGRATED-NEXT:    li a0, 0
 ; RV32I-MEDIUM-INTEGRATED-NEXT:    ret
-; RV32I-MEDIUM-INTEGRATED-NEXT:  .LBB40_2: # Block address taken
+; RV32I-MEDIUM-INTEGRATED-NEXT:  .LBB40_2: # Inline asm indirect target
 ; RV32I-MEDIUM-INTEGRATED-NEXT:    # %fail
 ; RV32I-MEDIUM-INTEGRATED-NEXT:    # Label of block must be emitted
 ; RV32I-MEDIUM-INTEGRATED-NEXT:    li a0, 1
@@ -2898,7 +2898,7 @@ define i32 @constraint_A_with_callbr_multi_operands(i32 
%a) {
 ; RV64I-MEDIUM-INTEGRATED-NEXT:  # %bb.1: # %normal
 ; RV64I-MEDIUM-INTEGRATED-NEXT:    li a0, 0
 ; RV64I-MEDIUM-INTEGRATED-NEXT:    ret
-; RV64I-MEDIUM-INTEGRATED-NEXT:  .LBB40_2: # Block address taken
+; RV64I-MEDIUM-INTEGRATED-NEXT:  .LBB40_2: # Inline asm indirect target
 ; RV64I-MEDIUM-INTEGRATED-NEXT:    # %fail
 ; RV64I-MEDIUM-INTEGRATED-NEXT:    # Label of block must be emitted
 ; RV64I-MEDIUM-INTEGRATED-NEXT:    li a0, 1
@@ -2917,7 +2917,7 @@ define i32 @constraint_A_with_callbr_multi_operands(i32 
%a) {
 ; RV64I-LARGE-INTEGRATED-NEXT:  # %bb.1: # %normal
 ; RV64I-LARGE-INTEGRATED-NEXT:    li a0, 0
 ; RV64I-LARGE-INTEGRATED-NEXT:    ret
-; RV64I-LARGE-INTEGRATED-NEXT:  .LBB40_2: # Block address taken
+; RV64I-LARGE-INTEGRATED-NEXT:  .LBB40_2: # Inline asm indirect target
 ; RV64I-LARGE-INTEGRATED-NEXT:    # %fail
 ; RV64I-LARGE-INTEGRATED-NEXT:    # Label of block must be emitted
 ; RV64I-LARGE-INTEGRATED-NEXT:    li a0, 1
@@ -2947,7 +2947,7 @@ define i32 @constraint_A_with_multi_callbr_asm(i32 %a) {
 ; RV32I-NO-INTEGRATED-NEXT:  # %bb.2: # %normal1
 ; RV32I-NO-INTEGRATED-NEXT:    li a0, 0
 ; RV32I-NO-INTEGRATED-NEXT:    ret
-; RV32I-NO-INTEGRATED-NEXT:  .LBB41_3: # Block address taken
+; RV32I-NO-INTEGRATED-NEXT:  .LBB41_3: # Inline asm indirect target
 ; RV32I-NO-INTEGRATED-NEXT:    # %fail
 ; RV32I-NO-INTEGRATED-NEXT:    # Label of block must be emitted
 ; RV32I-NO-INTEGRATED-NEXT:    li a0, 1
@@ -2967,7 +2967,7 @@ define i32 @constraint_A_with_multi_callbr_asm(i32 %a) {
 ; RV64I-NO-INTEGRATED-NEXT:  # %bb.2: # %normal1
 ; RV64I-NO-INTEGRATED-NEXT:    li a0, 0
 ; RV64I-NO-INTEGRATED-NEXT:    ret
-; RV64I-NO-INTEGRATED-NEXT:  .LBB41_3: # Block address taken
+; RV64I-NO-INTEGRATED-NEXT:  .LBB41_3: # Inline asm indirect target
 ; RV64I-NO-INTEGRATED-NEXT:    # %fail
 ; RV64I-NO-INTEGRATED-NEXT:    # Label of block must be emitted
 ; RV64I-NO-INTEGRATED-NEXT:    li a0, 1
@@ -2988,7 +2988,7 @@ define i32 @constraint_A_with_multi_callbr_asm(i32 %a) {
 ; RV32I-MEDIUM-NO-INTEGRATED-NEXT:  # %bb.2: # %normal1
 ; RV32I-MEDIUM-NO-INTEGRATED-NEXT:    li a0, 0
 ; RV32I-MEDIUM-NO-INTEGRATED-NEXT:    ret
-; RV32I-MEDIUM-NO-INTEGRATED-NEXT:  .LBB41_3: # Block address taken
+; RV32I-MEDIUM-NO-INTEGRATED-NEXT:  .LBB41_3: # Inline asm indirect target
 ; RV32I-MEDIUM-NO-INTEGRATED-NEXT:    # %fail
 ; RV32I-MEDIUM-NO-INTEGRATED-NEXT:    # Label of block must be emitted
 ; RV32I-MEDIUM-NO-INTEGRATED-NEXT:    li a0, 1
@@ -3009,7 +3009,7 @@ define i32 @constraint_A_with_multi_callbr_asm(i32 %a) {
 ; RV64I-MEDIUM-NO-INTEGRATED-NEXT:  # %bb.2: # %normal1
 ; RV64I-MEDIUM-NO-INTEGRATED-NEXT:    li a0, 0
 ; RV64I-MEDIUM-NO-INTEGRATED-NEXT:    ret
-; RV64I-MEDIUM-NO-INTEGRATED-NEXT:  .LBB41_3: # Block address taken
+; RV64I-MEDIUM-NO-INTEGRATED-NEXT:  .LBB41_3: # Inline asm indirect target
 ; RV64I-MEDIUM-NO-INTEGRATED-NEXT:    # %fail
 ; RV64I-MEDIUM-NO-INTEGRATED-NEXT:    # Label of block must be emitted
 ; RV64I-MEDIUM-NO-INTEGRATED-NEXT:    li a0, 1
@@ -3030,7 +3030,7 @@ define i32 @constraint_A_with_multi_callbr_asm(i32 %a) {
 ; RV64I-LARGE-NO-INTEGRATED-NEXT:  # %bb.2: # %normal1
 ; RV64I-LARGE-NO-INTEGRATED-NEXT:    li a0, 0
 ; RV64I-LARGE-NO-INTEGRATED-NEXT:    ret
-; RV64I-LARGE-NO-INTEGRATED-NEXT:  .LBB41_3: # Block address taken
+; RV64I-LARGE-NO-INTEGRATED-NEXT:  .LBB41_3: # Inline asm indirect target
 ; RV64I-LARGE-NO-INTEGRATED-NEXT:    # %fail
 ; RV64I-LARGE-NO-INTEGRATED-NEXT:    # Label of block must be emitted
 ; RV64I-LARGE-NO-INTEGRATED-NEXT:    li a0, 1
@@ -3052,7 +3052,7 @@ define i32 @constraint_A_with_multi_callbr_asm(i32 %a) {
 ; RV32I-INTEGRATED-NEXT:  # %bb.2: # %normal1
 ; RV32I-INTEGRATED-NEXT:    li a0, 0
 ; RV32I-INTEGRATED-NEXT:    ret
-; RV32I-INTEGRATED-NEXT:  .LBB41_3: # Block address taken
+; RV32I-INTEGRATED-NEXT:  .LBB41_3: # Inline asm indirect target
 ; RV32I-INTEGRATED-NEXT:    # %fail
 ; RV32I-INTEGRATED-NEXT:    # Label of block must be emitted
 ; RV32I-INTEGRATED-NEXT:    li a0, 1
@@ -3074,7 +3074,7 @@ define i32 @constraint_A_with_multi_callbr_asm(i32 %a) {
 ; RV64I-INTEGRATED-NEXT:  # %bb.2: # %normal1
 ; RV64I-INTEGRATED-NEXT:    li a0, 0
 ; RV64I-INTEGRATED-NEXT:    ret
-; RV64I-INTEGRATED-NEXT:  .LBB41_3: # Block address taken
+; RV64I-INTEGRATED-NEXT:  .LBB41_3: # Inline asm indirect target
 ; RV64I-INTEGRATED-NEXT:    # %fail
 ; RV64I-INTEGRATED-NEXT:    # Label of block must be emitted
 ; RV64I-INTEGRATED-NEXT:    li a0, 1
@@ -3097,7 +3097,7 @@ define i32 @constraint_A_with_multi_callbr_asm(i32 %a) {
 ; RV32I-MEDIUM-INTEGRATED-NEXT:  # %bb.2: # %normal1
 ; RV32I-MEDIUM-INTEGRATED-NEXT:    li a0, 0
 ; RV32I-MEDIUM-INTEGRATED-NEXT:    ret
-; RV32I-MEDIUM-INTEGRATED-NEXT:  .LBB41_3: # Block address taken
+; RV32I-MEDIUM-INTEGRATED-NEXT:  .LBB41_3: # Inline asm indirect target
 ; RV32I-MEDIUM-INTEGRATED-NEXT:    # %fail
 ; RV32I-MEDIUM-INTEGRATED-NEXT:    # Label of block must be emitted
 ; RV32I-MEDIUM-INTEGRATED-NEXT:    li a0, 1
@@ -3120,7 +3120,7 @@ define i32 @constraint_A_with_multi_callbr_asm(i32 %a) {
 ; RV64I-MEDIUM-INTEGRATED-NEXT:  # %bb.2: # %normal1
 ; RV64I-MEDIUM-INTEGRATED-NEXT:    li a0, 0
 ; RV64I-MEDIUM-INTEGRATED-NEXT:    ret
-; RV64I-MEDIUM-INTEGRATED-NEXT:  .LBB41_3: # Block address taken
+; RV64I-MEDIUM-INTEGRATED-NEXT:  .LBB41_3: # Inline asm indirect target
 ; RV64I-MEDIUM-INTEGRATED-NEXT:    # %fail
 ; RV64I-MEDIUM-INTEGRATED-NEXT:    # Label of block must be emitted
 ; RV64I-MEDIUM-INTEGRATED-NEXT:    li a0, 1
@@ -3143,7 +3143,7 @@ define i32 @constraint_A_with_multi_callbr_asm(i32 %a) {
 ; RV64I-LARGE-INTEGRATED-NEXT:  # %bb.2: # %normal1
 ; RV64I-LARGE-INTEGRATED-NEXT:    li a0, 0
 ; RV64I-LARGE-INTEGRATED-NEXT:    ret
-; RV64I-LARGE-INTEGRATED-NEXT:  .LBB41_3: # Block address taken
+; RV64I-LARGE-INTEGRATED-NEXT:  .LBB41_3: # Inline asm indirect target
 ; RV64I-LARGE-INTEGRATED-NEXT:    # %fail
 ; RV64I-LARGE-INTEGRATED-NEXT:    # Label of block must be emitted
 ; RV64I-LARGE-INTEGRATED-NEXT:    li a0, 1
diff --git a/llvm/test/CodeGen/X86/basic-block-sections-cloning-invalid.ll 
b/llvm/test/CodeGen/X86/basic-block-sections-cloning-invalid.ll
index c316ef9f8f260..3c3c4b55e89b3 100644
--- a/llvm/test/CodeGen/X86/basic-block-sections-cloning-invalid.ll
+++ b/llvm/test/CodeGen/X86/basic-block-sections-cloning-invalid.ll
@@ -83,5 +83,5 @@ cold:
 ;; Check the warnings
 ; WARN1: warning: block #2 is not a successor of block #0 in function foo
 ; WARN2: warning: no block with id 100 in function foo
-; WARN3: warning: block #6 has its machine block address taken in function foo
+; WARN3: warning: block #6 is a branch target of an 'asm goto' in function foo
 
diff --git a/llvm/test/CodeGen/X86/callbr-asm-blockplacement.ll 
b/llvm/test/CodeGen/X86/callbr-asm-blockplacement.ll
index 7f91b846447b3..db27132d4055b 100644
--- a/llvm/test/CodeGen/X86/callbr-asm-blockplacement.ll
+++ b/llvm/test/CodeGen/X86/callbr-asm-blockplacement.ll
@@ -50,7 +50,7 @@ define i32 @foo(i32 %arg, ptr %arg3) nounwind {
 ; CHECK-NEXT:    #NO_APP
 ; CHECK-NEXT:  # %bb.4: # %bb17
 ; CHECK-NEXT:    callq widget@PLT
-; CHECK-NEXT:  .LBB0_5: # Block address taken
+; CHECK-NEXT:  .LBB0_5: # Inline asm indirect target
 ; CHECK-NEXT:    # %bb18
 ; CHECK-NEXT:    # Label of block must be emitted
 ; CHECK-NEXT:    movw $0, 14(%r14)
diff --git a/llvm/test/CodeGen/X86/callbr-asm-branch-folding.ll 
b/llvm/test/CodeGen/X86/callbr-asm-branch-folding.ll
index 7ea3e2ce0a7ba..3d389523dffb3 100644
--- a/llvm/test/CodeGen/X86/callbr-asm-branch-folding.ll
+++ b/llvm/test/CodeGen/X86/callbr-asm-branch-folding.ll
@@ -53,7 +53,7 @@ define dso_local void @n(ptr %o, i32 %p, i32 %u) nounwind {
 ; CHECK-NEXT:    #APP
 ; CHECK-NEXT:    #NO_APP
 ; CHECK-NEXT:    jmp .LBB0_9
-; CHECK-NEXT:  .LBB0_7: # Block address taken
+; CHECK-NEXT:  .LBB0_7: # Inline asm indirect target
 ; CHECK-NEXT:    # %if.then20.critedge
 ; CHECK-NEXT:    # Label of block must be emitted
 ; CHECK-NEXT:    movl j(%rip), %edi
diff --git a/llvm/test/CodeGen/X86/callbr-asm-destinations.ll 
b/llvm/test/CodeGen/X86/callbr-asm-destinations.ll
index 38238d7b254ad..71e45f0bab423 100644
--- a/llvm/test/CodeGen/X86/callbr-asm-destinations.ll
+++ b/llvm/test/CodeGen/X86/callbr-asm-destinations.ll
@@ -10,7 +10,7 @@ define i32 @duplicate_normal_and_indirect_dest(i32 %a) {
 ; CHECK-NEXT:    xorl %eax, %eax
 ; CHECK-NEXT:    jmp .LBB0_1
 ; CHECK-NEXT:    #NO_APP
-; CHECK-NEXT:  .LBB0_1: # Block address taken
+; CHECK-NEXT:  .LBB0_1: # Inline asm indirect target
 ; CHECK-NEXT:    # %fail
 ; CHECK-NEXT:    # Label of block must be emitted
 ; CHECK-NEXT:    movl $1, %eax
@@ -35,7 +35,7 @@ define i32 @duplicate_indirect_dest(i32 %a) {
 ; CHECK-NEXT:    #NO_APP
 ; CHECK-NEXT:  # %bb.1: # %normal
 ; CHECK-NEXT:    retl
-; CHECK-NEXT:  .LBB1_2: # Block address taken
+; CHECK-NEXT:  .LBB1_2: # Inline asm indirect target
 ; CHECK-NEXT:    # %fail
 ; CHECK-NEXT:    # Label of block must be emitted
 ; CHECK-NEXT:    movl $1, %eax
diff --git a/llvm/test/CodeGen/X86/callbr-asm-label-addr.ll 
b/llvm/test/CodeGen/X86/callbr-asm-label-addr.ll
index 103e6a694c33e..b369662f85306 100644
--- a/llvm/test/CodeGen/X86/callbr-asm-label-addr.ll
+++ b/llvm/test/CodeGen/X86/callbr-asm-label-addr.ll
@@ -8,7 +8,7 @@ define i32 @test1(i32 %x) {
 ; CHECK-NEXT:    .quad .Ltmp0
 ; CHECK-NEXT:    .quad .LBB0_1
 ; CHECK-NEXT:    #NO_APP
-; CHECK-NEXT:  .LBB0_1: # Block address taken
+; CHECK-NEXT:  .LBB0_1: # Inline asm indirect target
 ; CHECK-NEXT:    # %bar
 ; CHECK-NEXT:    # Label of block must be emitted
 ; CHECK-NEXT:    pushq %rax
diff --git a/llvm/test/CodeGen/X86/callbr-asm-outputs-indirect-isel-m32.ll 
b/llvm/test/CodeGen/X86/callbr-asm-outputs-indirect-isel-m32.ll
index ee3889dec005a..187298e7b815b 100644
--- a/llvm/test/CodeGen/X86/callbr-asm-outputs-indirect-isel-m32.ll
+++ b/llvm/test/CodeGen/X86/callbr-asm-outputs-indirect-isel-m32.ll
@@ -22,7 +22,7 @@ define i8 @emulator_cmpxchg_emulated() {
   ; CHECK-NEXT:   $al = COPY [[SETCCr]]
   ; CHECK-NEXT:   RET 0, $al
   ; CHECK-NEXT: {{  $}}
-  ; CHECK-NEXT: bb.2.efaultu64.split (machine-block-address-taken, 
inlineasm-br-indirect-target):
+  ; CHECK-NEXT: bb.2.efaultu64.split (inlineasm-br-indirect-target):
   ; CHECK-NEXT:   [[SETCCr1:%[0-9]+]]:gr8 = SETCCr 4, implicit $eflags
   ; CHECK-NEXT:   $al = COPY [[SETCCr1]]
   ; CHECK-NEXT:   RET 0, $al
@@ -62,7 +62,7 @@ define i32 @emulator_cmpxchg_emulated2() {
   ; CHECK-NEXT:   $eax = COPY [[COPY2]]
   ; CHECK-NEXT:   RET 0, $eax
   ; CHECK-NEXT: {{  $}}
-  ; CHECK-NEXT: bb.2.efaultu64.split (machine-block-address-taken, 
inlineasm-br-indirect-target):
+  ; CHECK-NEXT: bb.2.efaultu64.split (inlineasm-br-indirect-target):
   ; CHECK-NEXT:   $eax = COPY %3
   ; CHECK-NEXT:   RET 0, $eax
 entry:
@@ -99,7 +99,7 @@ define i64 @multireg() {
   ; CHECK-NEXT:   $edx = COPY [[COPY2]]
   ; CHECK-NEXT:   RET 0, $eax, $edx
   ; CHECK-NEXT: {{  $}}
-  ; CHECK-NEXT: bb.2.split (machine-block-address-taken, 
inlineasm-br-indirect-target):
+  ; CHECK-NEXT: bb.2.split (inlineasm-br-indirect-target):
   ; CHECK-NEXT:   liveins: $eax, $edx
   ; CHECK-NEXT: {{  $}}
   ; CHECK-NEXT:   [[COPY4:%[0-9]+]]:gr32 = COPY $eax
diff --git a/llvm/test/CodeGen/X86/callbr-asm-outputs-indirect-isel.ll 
b/llvm/test/CodeGen/X86/callbr-asm-outputs-indirect-isel.ll
index 34f822ef52850..433bd254317e6 100644
--- a/llvm/test/CodeGen/X86/callbr-asm-outputs-indirect-isel.ll
+++ b/llvm/test/CodeGen/X86/callbr-asm-outputs-indirect-isel.ll
@@ -19,7 +19,7 @@ define i32 @test0() {
   ; CHECK-NEXT:   $eax = COPY [[MOV32ri]]
   ; CHECK-NEXT:   RET 0, $eax
   ; CHECK-NEXT: {{  $}}
-  ; CHECK-NEXT: bb.2.z.split (machine-block-address-taken, 
inlineasm-br-indirect-target):
+  ; CHECK-NEXT: bb.2.z.split (inlineasm-br-indirect-target):
   ; CHECK-NEXT:   $eax = COPY %1
   ; CHECK-NEXT:   RET 0, $eax
   %direct = callbr i32 asm "", "=r,!i"()
@@ -43,7 +43,7 @@ define i32 @test1() {
   ; CHECK-NEXT:   [[COPY:%[0-9]+]]:gr32 = COPY %4
   ; CHECK-NEXT:   JMP_1 %bb.2
   ; CHECK-NEXT: {{  $}}
-  ; CHECK-NEXT: bb.1.z.split (machine-block-address-taken, 
inlineasm-br-indirect-target):
+  ; CHECK-NEXT: bb.1.z.split (inlineasm-br-indirect-target):
   ; CHECK-NEXT:   successors: %bb.2(0x80000000)
   ; CHECK-NEXT: {{  $}}
   ; CHECK-NEXT:   [[COPY1:%[0-9]+]]:gr32 = COPY %4
@@ -77,7 +77,7 @@ define i32 @test2() {
   ; CHECK-NEXT:   [[COPY1:%[0-9]+]]:gr32 = COPY %5
   ; CHECK-NEXT:   JMP_1 %bb.2
   ; CHECK-NEXT: {{  $}}
-  ; CHECK-NEXT: bb.1.z.split (machine-block-address-taken, 
inlineasm-br-indirect-target):
+  ; CHECK-NEXT: bb.1.z.split (inlineasm-br-indirect-target):
   ; CHECK-NEXT:   successors: %bb.2(0x80000000)
   ; CHECK-NEXT: {{  $}}
   ; CHECK-NEXT:   [[COPY2:%[0-9]+]]:gr32 = COPY %5
@@ -112,7 +112,7 @@ define i32 @test3() {
   ; CHECK-NEXT:   [[COPY1:%[0-9]+]]:gr32 = COPY [[COPY]]
   ; CHECK-NEXT:   JMP_1 %bb.2
   ; CHECK-NEXT: {{  $}}
-  ; CHECK-NEXT: bb.1.z.split (machine-block-address-taken, 
inlineasm-br-indirect-target):
+  ; CHECK-NEXT: bb.1.z.split (inlineasm-br-indirect-target):
   ; CHECK-NEXT:   successors: %bb.2(0x80000000)
   ; CHECK-NEXT:   liveins: $ebx
   ; CHECK-NEXT: {{  $}}
@@ -150,7 +150,7 @@ define i32 @test4() {
   ; CHECK-NEXT:   [[COPY3:%[0-9]+]]:gr32 = COPY [[COPY]]
   ; CHECK-NEXT:   JMP_1 %bb.2
   ; CHECK-NEXT: {{  $}}
-  ; CHECK-NEXT: bb.1.z.split (machine-block-address-taken, 
inlineasm-br-indirect-target):
+  ; CHECK-NEXT: bb.1.z.split (inlineasm-br-indirect-target):
   ; CHECK-NEXT:   successors: %bb.2(0x80000000)
   ; CHECK-NEXT:   liveins: $ebx, $edx
   ; CHECK-NEXT: {{  $}}
@@ -187,7 +187,7 @@ define i32 @test5() {
   ; CHECK-NEXT:   [[COPY1:%[0-9]+]]:gr32 = COPY [[COPY]]
   ; CHECK-NEXT:   JMP_1 %bb.1
   ; CHECK-NEXT: {{  $}}
-  ; CHECK-NEXT: bb.1.cleanup (machine-block-address-taken, 
inlineasm-br-indirect-target):
+  ; CHECK-NEXT: bb.1.cleanup (inlineasm-br-indirect-target):
   ; CHECK-NEXT:   liveins: $ebx
   ; CHECK-NEXT: {{  $}}
   ; CHECK-NEXT:   [[COPY2:%[0-9]+]]:gr32 = COPY $ebx
@@ -227,7 +227,7 @@ define i64 @test6() {
   ; CHECK-NEXT:   $rax = COPY [[PHI]]
   ; CHECK-NEXT:   RET 0, $rax
   ; CHECK-NEXT: {{  $}}
-  ; CHECK-NEXT: bb.3.foo.split (machine-block-address-taken, 
inlineasm-br-indirect-target):
+  ; CHECK-NEXT: bb.3.foo.split (inlineasm-br-indirect-target):
   ; CHECK-NEXT:   successors: %bb.2(0x80000000)
   ; CHECK-NEXT:   liveins: $rdx
   ; CHECK-NEXT: {{  $}}
@@ -235,7 +235,7 @@ define i64 @test6() {
   ; CHECK-NEXT:   [[COPY5:%[0-9]+]]:gr64 = COPY [[COPY4]]
   ; CHECK-NEXT:   JMP_1 %bb.2
   ; CHECK-NEXT: {{  $}}
-  ; CHECK-NEXT: bb.4.foo.split2 (machine-block-address-taken, 
inlineasm-br-indirect-target):
+  ; CHECK-NEXT: bb.4.foo.split2 (inlineasm-br-indirect-target):
   ; CHECK-NEXT:   successors: %bb.2(0x80000000)
   ; CHECK-NEXT:   liveins: $rbx
   ; CHECK-NEXT: {{  $}}
@@ -286,7 +286,7 @@ define i32 @test7() {
   ; CHECK-NEXT:   $eax = COPY [[COPY2]]
   ; CHECK-NEXT:   RET 0, $eax
   ; CHECK-NEXT: {{  $}}
-  ; CHECK-NEXT: bb.3.retry.split (machine-block-address-taken, 
inlineasm-br-indirect-target):
+  ; CHECK-NEXT: bb.3.retry.split (inlineasm-br-indirect-target):
   ; CHECK-NEXT:   successors: %bb.1(0x80000000)
   ; CHECK-NEXT:   liveins: $edx
   ; CHECK-NEXT: {{  $}}
@@ -321,7 +321,7 @@ define i32 @test8() {
   ; CHECK-NEXT:   [[COPY:%[0-9]+]]:gr32 = COPY %1
   ; CHECK-NEXT:   JMP_1 %bb.1
   ; CHECK-NEXT: {{  $}}
-  ; CHECK-NEXT: bb.1.cleanup (machine-block-address-taken, 
inlineasm-br-indirect-target):
+  ; CHECK-NEXT: bb.1.cleanup (inlineasm-br-indirect-target):
   ; CHECK-NEXT:   $eax = COPY %1
   ; CHECK-NEXT:   RET 0, $eax
 entry:
@@ -348,7 +348,7 @@ define i64 @condition_code() {
   ; CHECK-NEXT:   $rax = COPY [[SUBREG_TO_REG]]
   ; CHECK-NEXT:   RET 0, $rax
   ; CHECK-NEXT: {{  $}}
-  ; CHECK-NEXT: bb.2.c (machine-block-address-taken, 
inlineasm-br-indirect-target):
+  ; CHECK-NEXT: bb.2.c (inlineasm-br-indirect-target):
   ; CHECK-NEXT:   [[SETCCr1:%[0-9]+]]:gr8 = SETCCr 4, implicit $eflags
   ; CHECK-NEXT:   [[MOVZX32rr8_1:%[0-9]+]]:gr32 = MOVZX32rr8 killed [[SETCCr1]]
   ; CHECK-NEXT:   [[SUBREG_TO_REG1:%[0-9]+]]:gr64 = SUBREG_TO_REG 0, killed 
[[MOVZX32rr8_1]], %subreg.sub_32bit
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 64f062bed9022..1504516d60cde 100644
--- a/llvm/test/CodeGen/X86/callbr-asm-outputs-pred-succ.ll
+++ b/llvm/test/CodeGen/X86/callbr-asm-outputs-pred-succ.ll
@@ -17,12 +17,12 @@
 
 ; Check the second INLINEASM_BR target block is preceded by the block with the
 ; second INLINEASM_BR.
-; CHECK: bb.2 (%ir-block.7, machine-block-address-taken, 
inlineasm-br-indirect-target):
+; CHECK: bb.2 (%ir-block.7, inlineasm-br-indirect-target):
 ; CHECK-NEXT: predecessors: %bb.1
 
 ; Check the first INLINEASM_BR target block is predecessed by the block with
 ; the first INLINEASM_BR.
-; CHECK: bb.4 (%ir-block.12, machine-block-address-taken, 
inlineasm-br-indirect-target):
+; CHECK: bb.4 (%ir-block.12, inlineasm-br-indirect-target):
 ; CHECK-NEXT: predecessors: %bb.0
 
 @.str = private unnamed_addr constant [26 x i8] c"inline asm#1 returned 
%d\0A\00", align 1
diff --git a/llvm/test/CodeGen/X86/callbr-asm-outputs.ll 
b/llvm/test/CodeGen/X86/callbr-asm-outputs.ll
index aadbda1716ba7..6ee43099209d2 100644
--- a/llvm/test/CodeGen/X86/callbr-asm-outputs.ll
+++ b/llvm/test/CodeGen/X86/callbr-asm-outputs.ll
@@ -14,7 +14,7 @@ define i32 @test1(i32 %x) {
 ; CHECK-NEXT:    #NO_APP
 ; CHECK-NEXT:  # %bb.1: # %normal
 ; CHECK-NEXT:    retl
-; CHECK-NEXT:  .LBB0_2: # Block address taken
+; CHECK-NEXT:  .LBB0_2: # Inline asm indirect target
 ; CHECK-NEXT:    # %abnormal
 ; CHECK-NEXT:    # Label of block must be emitted
 ; CHECK-NEXT:    movl $1, %eax
@@ -47,7 +47,7 @@ define i32 @test2(i32 %out1, i32 %out2) nounwind {
 ; CHECK-NEXT:    jne .LBB1_2
 ; CHECK-NEXT:    #NO_APP
 ; CHECK-NEXT:    jmp .LBB1_4
-; CHECK-NEXT:  .LBB1_2: # Block address taken
+; CHECK-NEXT:  .LBB1_2: # Inline asm indirect target
 ; CHECK-NEXT:    # %if.then.label_true_crit_edge
 ; CHECK-NEXT:    # Label of block must be emitted
 ; CHECK-NEXT:    jmp .LBB1_9
@@ -64,15 +64,15 @@ define i32 @test2(i32 %out1, i32 %out2) nounwind {
 ; CHECK-NEXT:    popl %esi
 ; CHECK-NEXT:    popl %edi
 ; CHECK-NEXT:    retl
-; CHECK-NEXT:  .LBB1_6: # Block address taken
+; CHECK-NEXT:  .LBB1_6: # Inline asm indirect target
 ; CHECK-NEXT:    # %if.then.return_crit_edge
 ; CHECK-NEXT:    # Label of block must be emitted
-; CHECK-NEXT:  .LBB1_7: # Block address taken
+; CHECK-NEXT:  .LBB1_7: # Inline asm indirect target
 ; CHECK-NEXT:    # %if.else.return_crit_edge
 ; CHECK-NEXT:    # Label of block must be emitted
 ; CHECK-NEXT:    movl $-1, %eax
 ; CHECK-NEXT:    jmp .LBB1_5
-; CHECK-NEXT:  .LBB1_8: # Block address taken
+; CHECK-NEXT:  .LBB1_8: # Inline asm indirect target
 ; CHECK-NEXT:    # %if.else.label_true_crit_edge
 ; CHECK-NEXT:    # Label of block must be emitted
 ; CHECK-NEXT:  .LBB1_9: # %label_true
@@ -130,10 +130,10 @@ define i32 @test3(i1 %cmp) nounwind {
 ; CHECK-NEXT:    popl %esi
 ; CHECK-NEXT:    popl %edi
 ; CHECK-NEXT:    retl
-; CHECK-NEXT:  .LBB2_5: # Block address taken
+; CHECK-NEXT:  .LBB2_5: # Inline asm indirect target
 ; CHECK-NEXT:    # %true.indirect_crit_edge
 ; CHECK-NEXT:    # Label of block must be emitted
-; CHECK-NEXT:  .LBB2_6: # Block address taken
+; CHECK-NEXT:  .LBB2_6: # Inline asm indirect target
 ; CHECK-NEXT:    # %false.indirect_crit_edge
 ; CHECK-NEXT:    # Label of block must be emitted
 ; CHECK-NEXT:    movl $42, %eax
@@ -175,18 +175,18 @@ define i32 @test4(i32 %out1, i32 %out2) {
 ; CHECK-NEXT:  # %bb.2: # %asm.fallthrough2
 ; CHECK-NEXT:    addl %ecx, %eax
 ; CHECK-NEXT:    retl
-; CHECK-NEXT:  .LBB3_3: # Block address taken
+; CHECK-NEXT:  .LBB3_3: # Inline asm indirect target
 ; CHECK-NEXT:    # %entry.return_crit_edge
 ; CHECK-NEXT:    # Label of block must be emitted
-; CHECK-NEXT:  .LBB3_4: # Block address taken
+; CHECK-NEXT:  .LBB3_4: # Inline asm indirect target
 ; CHECK-NEXT:    # %asm.fallthrough.return_crit_edge
 ; CHECK-NEXT:    # Label of block must be emitted
 ; CHECK-NEXT:    movl $-1, %eax
 ; CHECK-NEXT:    retl
-; CHECK-NEXT:  .LBB3_5: # Block address taken
+; CHECK-NEXT:  .LBB3_5: # Inline asm indirect target
 ; CHECK-NEXT:    # %entry.label_true_crit_edge
 ; CHECK-NEXT:    # Label of block must be emitted
-; CHECK-NEXT:  .LBB3_6: # Block address taken
+; CHECK-NEXT:  .LBB3_6: # Inline asm indirect target
 ; CHECK-NEXT:    # %asm.fallthrough.label_true_crit_edge
 ; CHECK-NEXT:    # Label of block must be emitted
 ; CHECK-NEXT:    movl $-2, %eax
@@ -226,7 +226,7 @@ define dso_local void @test5() {
 ; CHECK-NEXT:    #NO_APP
 ; CHECK-NEXT:  # %bb.1:
 ; CHECK-NEXT:    retl
-; CHECK-NEXT:  .LBB4_2: # Block address taken
+; CHECK-NEXT:  .LBB4_2: # Inline asm indirect target
 ; CHECK-NEXT:    # %._crit_edge
 ; CHECK-NEXT:    # Label of block must be emitted
 ; CHECK-NEXT:    retl
diff --git a/llvm/test/CodeGen/X86/callbr-asm-phi-placement.ll 
b/llvm/test/CodeGen/X86/callbr-asm-phi-placement.ll
index 43776bfac4628..1a4f24e3c5b42 100644
--- a/llvm/test/CodeGen/X86/callbr-asm-phi-placement.ll
+++ b/llvm/test/CodeGen/X86/callbr-asm-phi-placement.ll
@@ -16,7 +16,7 @@ define void @test1(ptr %arg, ptr %mem) nounwind {
 ; CHECK-NEXT:    pushq %rbx
 ; CHECK-NEXT:    pushq %rax
 ; CHECK-NEXT:    movq %rsi, %rbx
-; CHECK-NEXT:  .LBB0_1: # Block address taken
+; CHECK-NEXT:  .LBB0_1: # Inline asm indirect target
 ; CHECK-NEXT:    # %loop
 ; CHECK-NEXT:    # =>This Inner Loop Header: Depth=1
 ; CHECK-NEXT:    # Label of block must be emitted
diff --git a/llvm/test/CodeGen/X86/callbr-asm-sink.ll 
b/llvm/test/CodeGen/X86/callbr-asm-sink.ll
index a563838cfdf5f..c0a501fba0919 100644
--- a/llvm/test/CodeGen/X86/callbr-asm-sink.ll
+++ b/llvm/test/CodeGen/X86/callbr-asm-sink.ll
@@ -16,7 +16,7 @@ define void @klist_dec_and_del(ptr) {
 ; CHECK-NEXT:    #NO_APP
 ; CHECK-NEXT:  # %bb.2:
 ; CHECK-NEXT:    retq
-; CHECK-NEXT:  .LBB0_1: # Block address taken
+; CHECK-NEXT:  .LBB0_1: # Inline asm indirect target
 ; CHECK-NEXT:    # Label of block must be emitted
 ; CHECK-NEXT:    movq $0, -8(%rax)
 ; CHECK-NEXT:    retq
diff --git a/llvm/test/CodeGen/X86/callbr-asm.ll 
b/llvm/test/CodeGen/X86/callbr-asm.ll
index 65dc635e43cdf..16b23fa81e341 100644
--- a/llvm/test/CodeGen/X86/callbr-asm.ll
+++ b/llvm/test/CodeGen/X86/callbr-asm.ll
@@ -17,7 +17,7 @@ define i32 @test1(i32 %a) {
 ; CHECK-NEXT:  # %bb.1: # %normal
 ; CHECK-NEXT:    xorl %eax, %eax
 ; CHECK-NEXT:    retl
-; CHECK-NEXT:  .LBB0_2: # Block address taken
+; CHECK-NEXT:  .LBB0_2: # Inline asm indirect target
 ; CHECK-NEXT:    # %fail
 ; CHECK-NEXT:    # Label of block must be emitted
 ; CHECK-NEXT:    movl $1, %eax
@@ -48,7 +48,7 @@ define i32 @test1b(i32 %a) {
 ; CHECK-NEXT:  # %bb.1: # %normal
 ; CHECK-NEXT:    xorl %eax, %eax
 ; CHECK-NEXT:    retl
-; CHECK-NEXT:  .LBB1_2: # Block address taken
+; CHECK-NEXT:  .LBB1_2: # Inline asm indirect target
 ; CHECK-NEXT:    # %fail
 ; CHECK-NEXT:    # Label of block must be emitted
 ; CHECK-NEXT:    movl $1, %eax
@@ -91,14 +91,14 @@ fail:
 define i32 @test3(i32 %a) {
 ; CHECK-LABEL: test3:
 ; CHECK:       # %bb.0: # %entry
-; CHECK-NEXT:  .LBB3_1: # Block address taken
+; CHECK-NEXT:  .LBB3_1: # Inline asm indirect target
 ; CHECK-NEXT:    # %label01
 ; CHECK-NEXT:    # =>This Loop Header: Depth=1
 ; CHECK-NEXT:    # Child Loop BB3_2 Depth 2
 ; CHECK-NEXT:    # Child Loop BB3_3 Depth 3
 ; CHECK-NEXT:    # Child Loop BB3_4 Depth 4
 ; CHECK-NEXT:    # Label of block must be emitted
-; CHECK-NEXT:  .LBB3_2: # Block address taken
+; CHECK-NEXT:  .LBB3_2: # Inline asm indirect target
 ; CHECK-NEXT:    # %label02
 ; CHECK-NEXT:    # Parent Loop BB3_1 Depth=1
 ; CHECK-NEXT:    # => This Loop Header: Depth=2
@@ -106,14 +106,14 @@ define i32 @test3(i32 %a) {
 ; CHECK-NEXT:    # Child Loop BB3_4 Depth 4
 ; CHECK-NEXT:    # Label of block must be emitted
 ; CHECK-NEXT:    addl $4, {{[0-9]+}}(%esp)
-; CHECK-NEXT:  .LBB3_3: # Block address taken
+; CHECK-NEXT:  .LBB3_3: # Inline asm indirect target
 ; CHECK-NEXT:    # %label03
 ; CHECK-NEXT:    # Parent Loop BB3_1 Depth=1
 ; CHECK-NEXT:    # Parent Loop BB3_2 Depth=2
 ; CHECK-NEXT:    # => This Loop Header: Depth=3
 ; CHECK-NEXT:    # Child Loop BB3_4 Depth 4
 ; CHECK-NEXT:    # Label of block must be emitted
-; CHECK-NEXT:  .LBB3_4: # Block address taken
+; CHECK-NEXT:  .LBB3_4: # Inline asm indirect target
 ; CHECK-NEXT:    # %label04
 ; CHECK-NEXT:    # Parent Loop BB3_1 Depth=1
 ; CHECK-NEXT:    # Parent Loop BB3_2 Depth=2
@@ -177,7 +177,7 @@ define void @test4() {
 ; CHECK-NEXT:    #APP
 ; CHECK-NEXT:    ja .LBB4_3
 ; CHECK-NEXT:    #NO_APP
-; CHECK-NEXT:  .LBB4_3: # Block address taken
+; CHECK-NEXT:  .LBB4_3: # Inline asm indirect target
 ; CHECK-NEXT:    # %quux
 ; CHECK-NEXT:    # Label of block must be emitted
 ; CHECK-NEXT:    retl
diff --git a/llvm/test/CodeGen/X86/shrinkwrap-callbr.ll 
b/llvm/test/CodeGen/X86/shrinkwrap-callbr.ll
index b8e9cbb14a151..66bd957b89c40 100644
--- a/llvm/test/CodeGen/X86/shrinkwrap-callbr.ll
+++ b/llvm/test/CodeGen/X86/shrinkwrap-callbr.ll
@@ -33,7 +33,7 @@ define i32 @test1(i32 %v) {
 ; CHECK-NEXT:    popq %rcx
 ; CHECK-NEXT:    .cfi_def_cfa_offset 8
 ; CHECK-NEXT:    retq
-; CHECK-NEXT:  .LBB0_4: # Block address taken
+; CHECK-NEXT:  .LBB0_4: # Inline asm indirect target
 ; CHECK-NEXT:    # %two
 ; CHECK-NEXT:    # Label of block must be emitted
 ; CHECK-NEXT:    .cfi_def_cfa_offset 16
diff --git a/llvm/test/CodeGen/X86/tail-dup-asm-goto.ll 
b/llvm/test/CodeGen/X86/tail-dup-asm-goto.ll
index 05fefbe750e51..7ce983869ce7d 100644
--- a/llvm/test/CodeGen/X86/tail-dup-asm-goto.ll
+++ b/llvm/test/CodeGen/X86/tail-dup-asm-goto.ll
@@ -39,7 +39,7 @@ define ptr @test1(ptr %arg1, ptr %arg2) {
   ; CHECK-NEXT:   INLINEASM_BR &"#$0 $1 $2", 9 /* sideeffect mayload 
attdialect */, 13 /* imm */, 42, 13 /* imm */, 0, 13 /* imm */, %bb.4, 12 /* 
clobber */, implicit-def early-clobber $df, 12 /* clobber */, implicit-def 
early-clobber $fpsw, 12 /* clobber */, implicit-def early-clobber $eflags
   ; CHECK-NEXT:   JMP_1 %bb.5
   ; CHECK-NEXT: {{  $}}
-  ; CHECK-NEXT: bb.4.bb17.i.i.i (machine-block-address-taken, 
inlineasm-br-indirect-target):
+  ; CHECK-NEXT: bb.4.bb17.i.i.i (inlineasm-br-indirect-target):
   ; CHECK-NEXT:   successors: %bb.5(0x80000000)
   ; CHECK-NEXT: {{  $}}
   ; CHECK-NEXT: bb.5.kmem_cache_has_cpu_partial.exit:
@@ -118,7 +118,7 @@ define void @ceph_con_v2_try_read(i32 
%__trans_tmp_3.sroa.0.0.copyload, i1 %tobo
   ; CHECK-NEXT:   LIFETIME_END %stack.0.skip.i.i
   ; CHECK-NEXT:   JMP_1 %bb.1
   ; CHECK-NEXT: {{  $}}
-  ; CHECK-NEXT: bb.5.if.end.i (machine-block-address-taken, 
inlineasm-br-indirect-target):
+  ; CHECK-NEXT: bb.5.if.end.i (inlineasm-br-indirect-target):
   ; CHECK-NEXT:   successors: %bb.1(0x80000000)
   ; CHECK-NEXT: {{  $}}
   ; CHECK-NEXT:   LIFETIME_END %stack.0.skip.i.i

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to