[llvm] [LowerTypeTests] Use getGetElementPtr() overload accepting DataLayout (PR #225688)

Nikita Popov via llvm-commits llvm-commits at lists.llvm.org
Wed Sep 23 04:09:21 PDT 2026


https://github.com/nikic created https://github.com/llvm/llvm-project/pull/225688

To produce constexpr gep in canonical ptradd form.

>From f80b9019e7f7666b6976cdf0364da64cec927b87 Mon Sep 17 00:00:00 2001
From: Nikita Popov <npopov at redhat.com>
Date: Wed, 23 Sep 2026 13:00:09 +0200
Subject: [PATCH] [LowerTypeTests] Use getGetElementPtr() overload accepting
 DataLayout

To produce constexpr gep in canonical ptradd form.
---
 llvm/lib/Transforms/IPO/LowerTypeTests.cpp    | 13 +++---
 .../LowerTypeTests/aarch64-jumptable-dbg.ll   | 22 +++++-----
 .../LowerTypeTests/aarch64-jumptable.ll       |  3 +-
 .../LowerTypeTests/cfi-direct-call1.ll        |  4 +-
 .../Transforms/LowerTypeTests/function.ll     |  6 +--
 .../LowerTypeTests/icall-branch-funnel.ll     |  4 +-
 .../Transforms/LowerTypeTests/nocfivalue.ll   |  2 +-
 llvm/test/Transforms/LowerTypeTests/simple.ll |  6 +--
 .../LowerTypeTests/x86-jumptable-dbg.ll       | 41 ++++++++++---------
 .../LowerTypeTests/x86-jumptable.ll           | 10 +++--
 .../Transforms/MergeFunc/cfi-thunk-merging.ll |  2 +-
 11 files changed, 61 insertions(+), 52 deletions(-)

diff --git a/llvm/lib/Transforms/IPO/LowerTypeTests.cpp b/llvm/lib/Transforms/IPO/LowerTypeTests.cpp
index d91f1412412433..ab3b2e51c885bc 100644
--- a/llvm/lib/Transforms/IPO/LowerTypeTests.cpp
+++ b/llvm/lib/Transforms/IPO/LowerTypeTests.cpp
@@ -1172,8 +1172,9 @@ void LowerTypeTestsModule::buildBitSetsFromGlobalVariables(
     // Multiply by 2 to account for padding elements.
     Constant *CombinedGlobalIdxs[] = {ConstantInt::get(Int32Ty, 0),
                                       ConstantInt::get(Int32Ty, I * 2)};
-    Constant *CombinedGlobalElemPtr = ConstantExpr::getInBoundsGetElementPtr(
-        NewInit->getType(), CombinedGlobal, CombinedGlobalIdxs);
+    Constant *CombinedGlobalElemPtr = ConstantExpr::getGetElementPtr(
+        DL, NewInit->getType(), CombinedGlobal, CombinedGlobalIdxs,
+        GEPNoWrapFlags::inBounds());
     assert(GV->getType()->getAddressSpace() == 0);
     GlobalAlias *GAlias =
         GlobalAlias::create(NewTy->getElementType(I * 2), 0, GV->getLinkage(),
@@ -2096,10 +2097,10 @@ void LowerTypeTestsModule::buildBitSetsFromFunctionsNative(
     Function *F = cast<Function>(Functions[I]->getGlobal());
     bool IsJumpTableCanonical = Functions[I]->isJumpTableCanonical();
 
-    Constant *CombinedGlobalElemPtr = ConstantExpr::getInBoundsGetElementPtr(
-        JumpTableType, JumpTable,
-        ArrayRef<Constant *>{ConstantInt::get(IntPtrTy, 0),
-                             ConstantInt::get(IntPtrTy, I)});
+    Constant *CombinedGlobalElemPtr = ConstantExpr::getGetElementPtr(
+        F->getDataLayout(), JumpTableType, JumpTable,
+        {ConstantInt::get(IntPtrTy, 0), ConstantInt::get(IntPtrTy, I)},
+        GEPNoWrapFlags::inBounds());
 
     const bool IsExported = Functions[I]->isExported();
     if (!IsJumpTableCanonical) {
diff --git a/llvm/test/Transforms/LowerTypeTests/aarch64-jumptable-dbg.ll b/llvm/test/Transforms/LowerTypeTests/aarch64-jumptable-dbg.ll
index 87dc305f8c527d..d23643b1f61035 100644
--- a/llvm/test/Transforms/LowerTypeTests/aarch64-jumptable-dbg.ll
+++ b/llvm/test/Transforms/LowerTypeTests/aarch64-jumptable-dbg.ll
@@ -36,12 +36,12 @@ define i1 @foo(ptr %p) {
 ; AARCH64: @[[GLOB0:[0-9]+]] = private unnamed_addr constant [2 x ptr] [ptr @f, ptr @g], align 16
 ; AARCH64: @[[GLOB1:[0-9]+]] = private constant [0 x i8] zeroinitializer
 ; AARCH64: @f = alias [8 x i8], ptr @.cfi.jumptable
-; AARCH64: @g = internal alias [8 x i8], getelementptr inbounds ([2 x [8 x i8]], ptr @.cfi.jumptable, i64 0, i64 1)
+; AARCH64: @g = internal alias [8 x i8], getelementptr inbounds (i8, ptr @.cfi.jumptable, i64 8)
 ;.
 ; AARCH64-OFF: @[[GLOB0:[0-9]+]] = private unnamed_addr constant [2 x ptr] [ptr @f, ptr @g], align 16
 ; AARCH64-OFF: @[[GLOB1:[0-9]+]] = private constant [0 x i8] zeroinitializer
 ; AARCH64-OFF: @f = alias [8 x i8], ptr @.cfi.jumptable
-; AARCH64-OFF: @g = internal alias [8 x i8], getelementptr inbounds ([2 x [8 x i8]], ptr @.cfi.jumptable, i64 0, i64 1)
+; AARCH64-OFF: @g = internal alias [8 x i8], getelementptr inbounds (i8, ptr @.cfi.jumptable, i64 8)
 ;.
 ; AARCH64-LABEL: @f.cfi(
 ; AARCH64-NEXT:    ret void
@@ -62,9 +62,9 @@ define i1 @foo(ptr %p) {
 ; AARCH64: Function Attrs: naked noinline
 ; AARCH64-LABEL: @.cfi.jumptable(
 ; AARCH64-NEXT:  entry:
-; AARCH64-NEXT:    call void asm sideeffect "bti c\0Ab $0\0A", "s"(ptr @f.cfi), !dbg [[DBG8:![0-9]+]]
-; AARCH64-NEXT:    call void asm sideeffect "bti c\0Ab $0\0A", "s"(ptr @g.cfi), !dbg [[DBG11:![0-9]+]]
-; AARCH64-NEXT:    unreachable, !dbg [[DBG11]]
+; AARCH64-NEXT:    call void asm sideeffect "bti c\0Ab $0\0A", "s"(ptr @f.cfi), !dbg [[DBG9:![0-9]+]]
+; AARCH64-NEXT:    call void asm sideeffect "bti c\0Ab $0\0A", "s"(ptr @g.cfi), !dbg [[DBG12:![0-9]+]]
+; AARCH64-NEXT:    unreachable, !dbg [[DBG12]]
 ;
 ;
 ; AARCH64-OFF-LABEL: @f.cfi(
@@ -107,14 +107,16 @@ define i1 @foo(ptr %p) {
 ; AARCH64: [[META5:![0-9]+]] = !{i32 0, !"typeid1"}
 ; AARCH64: [[META6:![0-9]+]] = distinct !DISubprogram(name: "__ubsan_check_cfi_icall_jt", scope: null, file: [[META4]], type: [[META7:![0-9]+]], flags: DIFlagArtificial, spFlags: DISPFlagDefinition, unit: [[META3]])
 ; AARCH64: [[META7]] = !DISubroutineType(types: null)
-; AARCH64: [[DBG8]] = !DILocation(line: 0, scope: [[META9:![0-9]+]], inlinedAt: [[META10:![0-9]+]])
-; AARCH64: [[META9]] = distinct !DISubprogram(name: "f.cfi_jt", scope: null, file: [[META4]], type: [[META7]], flags: DIFlagArtificial, spFlags: DISPFlagDefinition, unit: [[META3]])
-; AARCH64: [[META10]] = !DILocation(line: 0, scope: [[META6]])
-; AARCH64: [[DBG11]] = !DILocation(line: 0, scope: [[META12:![0-9]+]], inlinedAt: [[META10]])
-; AARCH64: [[META12]] = distinct !DISubprogram(name: "g.cfi_jt", scope: null, file: [[META4]], type: [[META7]], flags: DIFlagArtificial, spFlags: DISPFlagDefinition, unit: [[META3]])
+; AARCH64: [[META8:![0-9]+]] = !{i64 1879002126, i64 8}
+; AARCH64: [[DBG9]] = !DILocation(line: 0, scope: [[META10:![0-9]+]], inlinedAt: [[META11:![0-9]+]])
+; AARCH64: [[META10]] = distinct !DISubprogram(name: "f.cfi_jt", scope: null, file: [[META4]], type: [[META7]], flags: DIFlagArtificial, spFlags: DISPFlagDefinition, unit: [[META3]])
+; AARCH64: [[META11]] = !DILocation(line: 0, scope: [[META6]])
+; AARCH64: [[DBG12]] = !DILocation(line: 0, scope: [[META13:![0-9]+]], inlinedAt: [[META11]])
+; AARCH64: [[META13]] = distinct !DISubprogram(name: "g.cfi_jt", scope: null, file: [[META4]], type: [[META7]], flags: DIFlagArtificial, spFlags: DISPFlagDefinition, unit: [[META3]])
 ;.
 ; AARCH64-OFF: [[META0:![0-9]+]] = !{i32 4, !"branch-target-enforcement", i32 1}
 ; AARCH64-OFF: [[META1:![0-9]+]] = !{i32 7, !"Dwarf Version", i32 5}
 ; AARCH64-OFF: [[META2:![0-9]+]] = !{i32 2, !"Debug Info Version", i32 3}
 ; AARCH64-OFF: [[META3:![0-9]+]] = !{i32 0, !"typeid1"}
+; AARCH64-OFF: [[META4:![0-9]+]] = !{i64 1879002126, i64 8}
 ;.
diff --git a/llvm/test/Transforms/LowerTypeTests/aarch64-jumptable.ll b/llvm/test/Transforms/LowerTypeTests/aarch64-jumptable.ll
index b6dc739ce1e0c2..272c704116359c 100644
--- a/llvm/test/Transforms/LowerTypeTests/aarch64-jumptable.ll
+++ b/llvm/test/Transforms/LowerTypeTests/aarch64-jumptable.ll
@@ -34,7 +34,7 @@ define i1 @foo(ptr %p) {
 ; AARCH64: @[[GLOB0:[0-9]+]] = private unnamed_addr constant [2 x ptr] [ptr @f, ptr @g], align 16
 ; AARCH64: @[[GLOB1:[0-9]+]] = private constant [0 x i8] zeroinitializer
 ; AARCH64: @f = alias [8 x i8], ptr @.cfi.jumptable
-; AARCH64: @g = internal alias [8 x i8], getelementptr inbounds ([2 x [8 x i8]], ptr @.cfi.jumptable, i64 0, i64 1)
+; AARCH64: @g = internal alias [8 x i8], getelementptr inbounds (i8, ptr @.cfi.jumptable, i64 8)
 ;.
 ; AARCH64-LABEL: @f.cfi(
 ; AARCH64-NEXT:    ret void
@@ -66,4 +66,5 @@ define i1 @foo(ptr %p) {
 ;.
 ; AARCH64: [[META0:![0-9]+]] = !{i32 4, !"branch-target-enforcement", i32 1}
 ; AARCH64: [[META1:![0-9]+]] = !{i32 0, !"typeid1"}
+; AARCH64: [[META2:![0-9]+]] = !{i64 1879002126, i64 8}
 ;.
diff --git a/llvm/test/Transforms/LowerTypeTests/cfi-direct-call1.ll b/llvm/test/Transforms/LowerTypeTests/cfi-direct-call1.ll
index 16e8dcc1d6f4c9..8ee95fa4ac70c5 100644
--- a/llvm/test/Transforms/LowerTypeTests/cfi-direct-call1.ll
+++ b/llvm/test/Transforms/LowerTypeTests/cfi-direct-call1.ll
@@ -57,8 +57,8 @@ entry:
 
 ; Indirect references to extern_weak and extern_decl must go through jump table
 ; FULL: [[CMP:%.*]] = icmp ne ptr @extern_weak, null
-; FULL: [[SEL:%.*]] = select i1 [[CMP]], ptr getelementptr inbounds ([4 x [8 x i8]], ptr @.cfi.jumptable, i64 0, i64 2), ptr null
-; FULL: %fptr2 = select i1 %cmp.i, ptr [[SEL]], ptr getelementptr inbounds ([4 x [8 x i8]], ptr @.cfi.jumptable, i64 0, i64 3)
+; FULL: [[SEL:%.*]] = select i1 [[CMP]], ptr getelementptr inbounds (i8, ptr @.cfi.jumptable, i64 16), ptr null
+; FULL: %fptr2 = select i1 %cmp.i, ptr [[SEL]], ptr getelementptr inbounds (i8, ptr @.cfi.jumptable, i64 24)
 
 ; Direct calls to extern_weak and extern_decl should go to original names
 ; FULL: %call5 = tail call i32 @extern_decl()
diff --git a/llvm/test/Transforms/LowerTypeTests/function.ll b/llvm/test/Transforms/LowerTypeTests/function.ll
index e474a2f026c744..c87c22000134fa 100644
--- a/llvm/test/Transforms/LowerTypeTests/function.ll
+++ b/llvm/test/Transforms/LowerTypeTests/function.ll
@@ -33,9 +33,9 @@ target datalayout = "e-p:64:64"
 ; JT8: @f = alias [8 x i8], ptr @[[JT:.*]]
 ; JT16: @f = alias [16 x i8], ptr @[[JT:.*]]
 
-; JT4: @g = internal alias [4 x i8], getelementptr inbounds ([2 x [4 x i8]], ptr @[[JT]], i64 0, i64 1)
-; JT8: @g = internal alias [8 x i8], getelementptr inbounds ([2 x [8 x i8]], ptr @[[JT]], i64 0, i64 1)
-; JT16: @g = internal alias [16 x i8], getelementptr inbounds ([2 x [16 x i8]], ptr @[[JT]], i64 0, i64 1)
+; JT4: @g = internal alias [4 x i8], getelementptr inbounds (i8, ptr @[[JT]], i64 4)
+; JT8: @g = internal alias [8 x i8], getelementptr inbounds (i8, ptr @[[JT]], i64 8)
+; JT16: @g = internal alias [16 x i8], getelementptr inbounds (i8, ptr @[[JT]], i64 16)
 
 ; NATIVE: define hidden void @f.cfi()
 ; WASM32: define void @f() !type !{{[0-9]+}} !wasm.index ![[I0:[0-9]+]]
diff --git a/llvm/test/Transforms/LowerTypeTests/icall-branch-funnel.ll b/llvm/test/Transforms/LowerTypeTests/icall-branch-funnel.ll
index 8cb41398e8f53b..99d48285daf545 100644
--- a/llvm/test/Transforms/LowerTypeTests/icall-branch-funnel.ll
+++ b/llvm/test/Transforms/LowerTypeTests/icall-branch-funnel.ll
@@ -5,9 +5,9 @@ target triple = "x86_64-unknown-linux"
 
 ; CHECK: @0 = private constant { i32, [0 x i8], i32 } { i32 1, [0 x i8] zeroinitializer, i32 2 }
 ; CHECK: @g1 = alias i32, ptr @0
-; CHECK: @g2 = alias i32, getelementptr inbounds ({ i32, [0 x i8], i32 }, ptr @0, i32 0, i32 2)
+; CHECK: @g2 = alias i32, getelementptr inbounds (i8, ptr @0, i64 4)
 ; CHECK: @f1 = alias [8 x i8], ptr @.cfi.jumptable
-; CHECK: @f2 = alias [8 x i8], getelementptr inbounds ([2 x [8 x i8]], ptr @.cfi.jumptable, i64 0, i64 1)
+; CHECK: @f2 = alias [8 x i8], getelementptr inbounds (i8, ptr @.cfi.jumptable, i64 8)
 
 @g1 = constant i32 1
 @g2 = constant i32 2
diff --git a/llvm/test/Transforms/LowerTypeTests/nocfivalue.ll b/llvm/test/Transforms/LowerTypeTests/nocfivalue.ll
index 33868d541d4562..6972dd6a5cce54 100644
--- a/llvm/test/Transforms/LowerTypeTests/nocfivalue.ll
+++ b/llvm/test/Transforms/LowerTypeTests/nocfivalue.ll
@@ -3,7 +3,7 @@
 target datalayout = "e-p:64:64"
 target triple = "x86_64-unknown-linux-gnu"
 
-; CHECK: @a = global [6 x ptr] [ptr no_cfi @f1, ptr @.cfi.jumptable, ptr getelementptr inbounds ([3 x [8 x i8]], ptr @.cfi.jumptable, i64 0, i64 1), ptr no_cfi @f2, ptr @f3, ptr no_cfi @f3.cfi]
+; CHECK: @a = global [6 x ptr] [ptr no_cfi @f1, ptr @.cfi.jumptable, ptr getelementptr inbounds (i8, ptr @.cfi.jumptable, i64 8), ptr no_cfi @f2, ptr @f3, ptr no_cfi @f3.cfi]
 @a = global [6 x ptr] [ptr no_cfi @f1, ptr @f1, ptr @f2, ptr no_cfi @f2, ptr @f3, ptr no_cfi @f3]
 
 ; CHECK: define void @f1()
diff --git a/llvm/test/Transforms/LowerTypeTests/simple.ll b/llvm/test/Transforms/LowerTypeTests/simple.ll
index 173a6aef8f1de1..06f2863258d868 100644
--- a/llvm/test/Transforms/LowerTypeTests/simple.ll
+++ b/llvm/test/Transforms/LowerTypeTests/simple.ll
@@ -35,9 +35,9 @@ target datalayout = "e-p:32:32"
 ; CHECK: @bits_use.{{[0-9]*}} = private alias i8, ptr @bits{{[0-9]*}}
 
 ; CHECK: @a = alias i32, ptr [[G]]
-; CHECK: @b = hidden alias [63 x i32], getelementptr inbounds ({ i32, [0 x i8], [63 x i32], [4 x i8], i32, [0 x i8], [2 x i32] }, ptr [[G]], i32 0, i32 2)
-; CHECK: @c = protected alias i32, getelementptr inbounds ({ i32, [0 x i8], [63 x i32], [4 x i8], i32, [0 x i8], [2 x i32] }, ptr [[G]], i32 0, i32 4)
-; CHECK: @d = alias [2 x i32], getelementptr inbounds ({ i32, [0 x i8], [63 x i32], [4 x i8], i32, [0 x i8], [2 x i32] }, ptr [[G]], i32 0, i32 6)
+; CHECK: @b = hidden alias [63 x i32], getelementptr inbounds (i8, ptr [[G]], i32 4)
+; CHECK: @c = protected alias i32, getelementptr inbounds (i8, ptr [[G]], i32 260)
+; CHECK: @d = alias [2 x i32], getelementptr inbounds (i8, ptr [[G]], i32 264)
 
 ; CHECK: @bits{{[0-9]*}} = private alias i8, ptr [[BA]]
 ; CHECK: @bits.{{[0-9]*}} = private alias i8, ptr [[BA]]
diff --git a/llvm/test/Transforms/LowerTypeTests/x86-jumptable-dbg.ll b/llvm/test/Transforms/LowerTypeTests/x86-jumptable-dbg.ll
index eee523c9607079..84f124a2db1274 100644
--- a/llvm/test/Transforms/LowerTypeTests/x86-jumptable-dbg.ll
+++ b/llvm/test/Transforms/LowerTypeTests/x86-jumptable-dbg.ll
@@ -32,17 +32,17 @@ define i1 @foo(ptr %p) {
 ; X86_32: @[[GLOB0:[0-9]+]] = private unnamed_addr constant [2 x ptr] [ptr @f, ptr @g], align 16
 ; X86_32: @[[GLOB1:[0-9]+]] = private constant [0 x i8] zeroinitializer
 ; X86_32: @f = alias [16 x i8], ptr @.cfi.jumptable
-; X86_32: @g = internal alias [16 x i8], getelementptr inbounds ([2 x [16 x i8]], ptr @.cfi.jumptable, i32 0, i32 1)
+; X86_32: @g = internal alias [16 x i8], getelementptr inbounds (i8, ptr @.cfi.jumptable, i32 16)
 ;.
 ; X86_64: @[[GLOB0:[0-9]+]] = private unnamed_addr constant [2 x ptr] [ptr @f, ptr @g], align 16
 ; X86_64: @[[GLOB1:[0-9]+]] = private constant [0 x i8] zeroinitializer
 ; X86_64: @f = alias [16 x i8], ptr @.cfi.jumptable
-; X86_64: @g = internal alias [16 x i8], getelementptr inbounds ([2 x [16 x i8]], ptr @.cfi.jumptable, i64 0, i64 1)
+; X86_64: @g = internal alias [16 x i8], getelementptr inbounds (i8, ptr @.cfi.jumptable, i64 16)
 ;.
 ; X86_64-OFF: @[[GLOB0:[0-9]+]] = private unnamed_addr constant [2 x ptr] [ptr @f, ptr @g], align 16
 ; X86_64-OFF: @[[GLOB1:[0-9]+]] = private constant [0 x i8] zeroinitializer
 ; X86_64-OFF: @f = alias [16 x i8], ptr @.cfi.jumptable
-; X86_64-OFF: @g = internal alias [16 x i8], getelementptr inbounds ([2 x [16 x i8]], ptr @.cfi.jumptable, i64 0, i64 1)
+; X86_64-OFF: @g = internal alias [16 x i8], getelementptr inbounds (i8, ptr @.cfi.jumptable, i64 16)
 ;.
 ; X86_32-LABEL: @f.cfi(
 ; X86_32-NEXT:    ret void
@@ -62,9 +62,9 @@ define i1 @foo(ptr %p) {
 ;
 ; X86_32-LABEL: @.cfi.jumptable(
 ; X86_32-NEXT:  entry:
-; X86_32-NEXT:    call void asm sideeffect "endbr32\0Ajmp ${0:c}@plt\0A.balign 16, 0xcc\0A", "s"(ptr @f.cfi), !dbg [[DBG8:![0-9]+]]
-; X86_32-NEXT:    call void asm sideeffect "endbr32\0Ajmp ${0:c}@plt\0A.balign 16, 0xcc\0A", "s"(ptr @g.cfi), !dbg [[DBG11:![0-9]+]]
-; X86_32-NEXT:    unreachable, !dbg [[DBG11]]
+; X86_32-NEXT:    call void asm sideeffect "endbr32\0Ajmp ${0:c}@plt\0A.balign 16, 0xcc\0A", "s"(ptr @f.cfi), !dbg [[DBG9:![0-9]+]]
+; X86_32-NEXT:    call void asm sideeffect "endbr32\0Ajmp ${0:c}@plt\0A.balign 16, 0xcc\0A", "s"(ptr @g.cfi), !dbg [[DBG12:![0-9]+]]
+; X86_32-NEXT:    unreachable, !dbg [[DBG12]]
 ;
 ;
 ; X86_64-LABEL: @f.cfi(
@@ -85,9 +85,9 @@ define i1 @foo(ptr %p) {
 ;
 ; X86_64-LABEL: @.cfi.jumptable(
 ; X86_64-NEXT:  entry:
-; X86_64-NEXT:    call void asm sideeffect "endbr64\0Ajmp ${0:c}@plt\0A.balign 16, 0xcc\0A", "s"(ptr @f.cfi), !dbg [[DBG8:![0-9]+]]
-; X86_64-NEXT:    call void asm sideeffect "endbr64\0Ajmp ${0:c}@plt\0A.balign 16, 0xcc\0A", "s"(ptr @g.cfi), !dbg [[DBG11:![0-9]+]]
-; X86_64-NEXT:    unreachable, !dbg [[DBG11]]
+; X86_64-NEXT:    call void asm sideeffect "endbr64\0Ajmp ${0:c}@plt\0A.balign 16, 0xcc\0A", "s"(ptr @f.cfi), !dbg [[DBG9:![0-9]+]]
+; X86_64-NEXT:    call void asm sideeffect "endbr64\0Ajmp ${0:c}@plt\0A.balign 16, 0xcc\0A", "s"(ptr @g.cfi), !dbg [[DBG12:![0-9]+]]
+; X86_64-NEXT:    unreachable, !dbg [[DBG12]]
 ;
 ;
 ; X86_64-OFF-LABEL: @f.cfi(
@@ -133,11 +133,12 @@ define i1 @foo(ptr %p) {
 ; X86_32: [[META5:![0-9]+]] = !{i32 0, !"typeid1"}
 ; X86_32: [[META6:![0-9]+]] = distinct !DISubprogram(name: "__ubsan_check_cfi_icall_jt", scope: null, file: [[META4]], type: [[META7:![0-9]+]], flags: DIFlagArtificial, spFlags: DISPFlagDefinition, unit: [[META3]])
 ; X86_32: [[META7]] = !DISubroutineType(types: null)
-; X86_32: [[DBG8]] = !DILocation(line: 0, scope: [[META9:![0-9]+]], inlinedAt: [[META10:![0-9]+]])
-; X86_32: [[META9]] = distinct !DISubprogram(name: "f.cfi_jt", scope: null, file: [[META4]], type: [[META7]], flags: DIFlagArtificial, spFlags: DISPFlagDefinition, unit: [[META3]])
-; X86_32: [[META10]] = !DILocation(line: 0, scope: [[META6]])
-; X86_32: [[DBG11]] = !DILocation(line: 0, scope: [[META12:![0-9]+]], inlinedAt: [[META10]])
-; X86_32: [[META12]] = distinct !DISubprogram(name: "g.cfi_jt", scope: null, file: [[META4]], type: [[META7]], flags: DIFlagArtificial, spFlags: DISPFlagDefinition, unit: [[META3]])
+; X86_32: [[META8:![0-9]+]] = !{i64 1879002126, i64 16}
+; X86_32: [[DBG9]] = !DILocation(line: 0, scope: [[META10:![0-9]+]], inlinedAt: [[META11:![0-9]+]])
+; X86_32: [[META10]] = distinct !DISubprogram(name: "f.cfi_jt", scope: null, file: [[META4]], type: [[META7]], flags: DIFlagArtificial, spFlags: DISPFlagDefinition, unit: [[META3]])
+; X86_32: [[META11]] = !DILocation(line: 0, scope: [[META6]])
+; X86_32: [[DBG12]] = !DILocation(line: 0, scope: [[META13:![0-9]+]], inlinedAt: [[META11]])
+; X86_32: [[META13]] = distinct !DISubprogram(name: "g.cfi_jt", scope: null, file: [[META4]], type: [[META7]], flags: DIFlagArtificial, spFlags: DISPFlagDefinition, unit: [[META3]])
 ;.
 ; X86_64: [[META0:![0-9]+]] = !{i32 8, !"cf-protection-branch", i32 1}
 ; X86_64: [[META1:![0-9]+]] = !{i32 7, !"Dwarf Version", i32 5}
@@ -147,14 +148,16 @@ define i1 @foo(ptr %p) {
 ; X86_64: [[META5:![0-9]+]] = !{i32 0, !"typeid1"}
 ; X86_64: [[META6:![0-9]+]] = distinct !DISubprogram(name: "__ubsan_check_cfi_icall_jt", scope: null, file: [[META4]], type: [[META7:![0-9]+]], flags: DIFlagArtificial, spFlags: DISPFlagDefinition, unit: [[META3]])
 ; X86_64: [[META7]] = !DISubroutineType(types: null)
-; X86_64: [[DBG8]] = !DILocation(line: 0, scope: [[META9:![0-9]+]], inlinedAt: [[META10:![0-9]+]])
-; X86_64: [[META9]] = distinct !DISubprogram(name: "f.cfi_jt", scope: null, file: [[META4]], type: [[META7]], flags: DIFlagArtificial, spFlags: DISPFlagDefinition, unit: [[META3]])
-; X86_64: [[META10]] = !DILocation(line: 0, scope: [[META6]])
-; X86_64: [[DBG11]] = !DILocation(line: 0, scope: [[META12:![0-9]+]], inlinedAt: [[META10]])
-; X86_64: [[META12]] = distinct !DISubprogram(name: "g.cfi_jt", scope: null, file: [[META4]], type: [[META7]], flags: DIFlagArtificial, spFlags: DISPFlagDefinition, unit: [[META3]])
+; X86_64: [[META8:![0-9]+]] = !{i64 1879002126, i64 16}
+; X86_64: [[DBG9]] = !DILocation(line: 0, scope: [[META10:![0-9]+]], inlinedAt: [[META11:![0-9]+]])
+; X86_64: [[META10]] = distinct !DISubprogram(name: "f.cfi_jt", scope: null, file: [[META4]], type: [[META7]], flags: DIFlagArtificial, spFlags: DISPFlagDefinition, unit: [[META3]])
+; X86_64: [[META11]] = !DILocation(line: 0, scope: [[META6]])
+; X86_64: [[DBG12]] = !DILocation(line: 0, scope: [[META13:![0-9]+]], inlinedAt: [[META11]])
+; X86_64: [[META13]] = distinct !DISubprogram(name: "g.cfi_jt", scope: null, file: [[META4]], type: [[META7]], flags: DIFlagArtificial, spFlags: DISPFlagDefinition, unit: [[META3]])
 ;.
 ; X86_64-OFF: [[META0:![0-9]+]] = !{i32 8, !"cf-protection-branch", i32 1}
 ; X86_64-OFF: [[META1:![0-9]+]] = !{i32 7, !"Dwarf Version", i32 5}
 ; X86_64-OFF: [[META2:![0-9]+]] = !{i32 2, !"Debug Info Version", i32 3}
 ; X86_64-OFF: [[META3:![0-9]+]] = !{i32 0, !"typeid1"}
+; X86_64-OFF: [[META4:![0-9]+]] = !{i64 1879002126, i64 16}
 ;.
diff --git a/llvm/test/Transforms/LowerTypeTests/x86-jumptable.ll b/llvm/test/Transforms/LowerTypeTests/x86-jumptable.ll
index 75e410f83e827a..4b3b2d812b81c6 100644
--- a/llvm/test/Transforms/LowerTypeTests/x86-jumptable.ll
+++ b/llvm/test/Transforms/LowerTypeTests/x86-jumptable.ll
@@ -32,14 +32,14 @@ define i1 @foo(ptr %p) {
 ; X86_32: @[[GLOB0:[0-9]+]] = private unnamed_addr constant [3 x ptr] [ptr @f, ptr @g, ptr @h], align 16
 ; X86_32: @[[GLOB1:[0-9]+]] = private constant [0 x i8] zeroinitializer
 ; X86_32: @f = alias [16 x i8], ptr @.cfi.jumptable
-; X86_32: @g = internal alias [16 x i8], getelementptr inbounds ([3 x [16 x i8]], ptr @.cfi.jumptable, i32 0, i32 1)
-; X86_32: @h = dso_local alias [16 x i8], getelementptr inbounds ([3 x [16 x i8]], ptr @.cfi.jumptable, i32 0, i32 2)
+; X86_32: @g = internal alias [16 x i8], getelementptr inbounds (i8, ptr @.cfi.jumptable, i32 16)
+; X86_32: @h = dso_local alias [16 x i8], getelementptr inbounds (i8, ptr @.cfi.jumptable, i32 32)
 ;.
 ; X86_64: @[[GLOB0:[0-9]+]] = private unnamed_addr constant [3 x ptr] [ptr @f, ptr @g, ptr @h], align 16
 ; X86_64: @[[GLOB1:[0-9]+]] = private constant [0 x i8] zeroinitializer
 ; X86_64: @f = alias [16 x i8], ptr @.cfi.jumptable
-; X86_64: @g = internal alias [16 x i8], getelementptr inbounds ([3 x [16 x i8]], ptr @.cfi.jumptable, i64 0, i64 1)
-; X86_64: @h = dso_local alias [16 x i8], getelementptr inbounds ([3 x [16 x i8]], ptr @.cfi.jumptable, i64 0, i64 2)
+; X86_64: @g = internal alias [16 x i8], getelementptr inbounds (i8, ptr @.cfi.jumptable, i64 16)
+; X86_64: @h = dso_local alias [16 x i8], getelementptr inbounds (i8, ptr @.cfi.jumptable, i64 32)
 ;.
 ; X86_32-LABEL: @f.cfi(
 ; X86_32-NEXT:    ret void
@@ -107,7 +107,9 @@ define i1 @foo(ptr %p) {
 ;.
 ; X86_32: [[META0:![0-9]+]] = !{i32 8, !"cf-protection-branch", i32 1}
 ; X86_32: [[META1:![0-9]+]] = !{i32 0, !"typeid1"}
+; X86_32: [[META2:![0-9]+]] = !{i64 1879002126, i64 16}
 ;.
 ; X86_64: [[META0:![0-9]+]] = !{i32 8, !"cf-protection-branch", i32 1}
 ; X86_64: [[META1:![0-9]+]] = !{i32 0, !"typeid1"}
+; X86_64: [[META2:![0-9]+]] = !{i64 1879002126, i64 16}
 ;.
diff --git a/llvm/test/Transforms/MergeFunc/cfi-thunk-merging.ll b/llvm/test/Transforms/MergeFunc/cfi-thunk-merging.ll
index 29ca08cf4073f0..e9635750c8d61a 100644
--- a/llvm/test/Transforms/MergeFunc/cfi-thunk-merging.ll
+++ b/llvm/test/Transforms/MergeFunc/cfi-thunk-merging.ll
@@ -177,7 +177,7 @@ attributes #3 = { noreturn nounwind }
 ; LOWERTYPETESTS-NEXT:    [[TMP0:%.*]] = load i32, ptr [[B_ADDR]], align 4
 ; LOWERTYPETESTS-NEXT:    [[TOBOOL:%.*]] = icmp ne i32 [[TMP0]], 0
 ; LOWERTYPETESTS-NEXT:    [[TMP1:%.*]] = zext i1 [[TOBOOL]] to i64
-; LOWERTYPETESTS-NEXT:    [[COND:%.*]] = select i1 [[TOBOOL]], ptr @.cfi.jumptable, ptr getelementptr inbounds ([2 x [8 x i8]], ptr @.cfi.jumptable, i64 0, i64 1)
+; LOWERTYPETESTS-NEXT:    [[COND:%.*]] = select i1 [[TOBOOL]], ptr @.cfi.jumptable, ptr getelementptr inbounds (i8, ptr @.cfi.jumptable, i64 8)
 ; LOWERTYPETESTS-NEXT:    store ptr [[COND]], ptr [[FP]], align 8
 ; LOWERTYPETESTS-NEXT:    [[TMP2:%.*]] = load ptr, ptr [[FP]], align 8
 ; LOWERTYPETESTS-NEXT:    [[TMP3:%.*]] = ptrtoint ptr [[TMP2]] to i64



More information about the llvm-commits mailing list