[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