[llvm] 0bbf25f - [InstCombine] Regenerate test checks (NFC)
Nikita Popov via llvm-commits
llvm-commits at lists.llvm.org
Mon Feb 9 05:39:53 PST 2026
Author: Nikita Popov
Date: 2026-02-09T14:39:27+01:00
New Revision: 0bbf25ffd4b2e665e2a36adcd11b732ac8bb74e6
URL: https://github.com/llvm/llvm-project/commit/0bbf25ffd4b2e665e2a36adcd11b732ac8bb74e6
DIFF: https://github.com/llvm/llvm-project/commit/0bbf25ffd4b2e665e2a36adcd11b732ac8bb74e6.diff
LOG: [InstCombine] Regenerate test checks (NFC)
Added:
Modified:
llvm/test/Transforms/InstCombine/gep-sext.ll
Removed:
################################################################################
diff --git a/llvm/test/Transforms/InstCombine/gep-sext.ll b/llvm/test/Transforms/InstCombine/gep-sext.ll
index e1742e1c66178..c1998776bde2a 100644
--- a/llvm/test/Transforms/InstCombine/gep-sext.ll
+++ b/llvm/test/Transforms/InstCombine/gep-sext.ll
@@ -1,14 +1,18 @@
+; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 6
; RUN: opt < %s -passes=instcombine -S | FileCheck %s
-target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64"
-target triple = "x86_64-pc-win32"
declare void @use(i32) readonly
; We prefer to canonicalize the machine width gep indices early
define void @test(ptr %p, i32 %index) {
-; CHECK-LABEL: @test
-; CHECK-NEXT: %1 = sext i32 %index to i64
-; CHECK-NEXT: %addr = getelementptr i32, ptr %p, i64 %1
+; CHECK-LABEL: define void @test(
+; CHECK-SAME: ptr [[P:%.*]], i32 [[INDEX:%.*]]) {
+; CHECK-NEXT: [[TMP1:%.*]] = sext i32 [[INDEX]] to i64
+; CHECK-NEXT: [[ADDR:%.*]] = getelementptr i32, ptr [[P]], i64 [[TMP1]]
+; CHECK-NEXT: [[VAL:%.*]] = load i32, ptr [[ADDR]], align 4
+; CHECK-NEXT: call void @use(i32 [[VAL]])
+; CHECK-NEXT: ret void
+;
%addr = getelementptr i32, ptr %p, i32 %index
%val = load i32, ptr %addr
call void @use(i32 %val)
@@ -16,9 +20,14 @@ define void @test(ptr %p, i32 %index) {
}
; If they've already been canonicalized via zext, that's fine
define void @test2(ptr %p, i32 %index) {
-; CHECK-LABEL: @test2
-; CHECK-NEXT: %i = zext i32 %index to i64
-; CHECK-NEXT: %addr = getelementptr i32, ptr %p, i64 %i
+; CHECK-LABEL: define void @test2(
+; CHECK-SAME: ptr [[P:%.*]], i32 [[INDEX:%.*]]) {
+; CHECK-NEXT: [[I:%.*]] = zext i32 [[INDEX]] to i64
+; CHECK-NEXT: [[ADDR:%.*]] = getelementptr i32, ptr [[P]], i64 [[I]]
+; CHECK-NEXT: [[VAL:%.*]] = load i32, ptr [[ADDR]], align 4
+; CHECK-NEXT: call void @use(i32 [[VAL]])
+; CHECK-NEXT: ret void
+;
%i = zext i32 %index to i64
%addr = getelementptr i32, ptr %p, i64 %i
%val = load i32, ptr %addr
@@ -28,9 +37,17 @@ define void @test2(ptr %p, i32 %index) {
; If we can use a zext, we prefer that. This requires
; knowing that the index is positive.
define void @test3(ptr %p, i32 %index) {
-; CHECK-LABEL: @test3
-; CHECK: zext
-; CHECK-NOT: sext
+; CHECK-LABEL: define void @test3(
+; CHECK-SAME: ptr [[P:%.*]], i32 [[INDEX:%.*]]) {
+; CHECK-NEXT: [[ADDR_BEGIN:%.*]] = getelementptr i8, ptr [[P]], i64 160
+; CHECK-NEXT: [[ADDR_FIXED:%.*]] = getelementptr i8, ptr [[P]], i64 352
+; CHECK-NEXT: [[VAL_FIXED:%.*]] = load i32, ptr [[ADDR_FIXED]], align 4, !range [[RNG0:![0-9]+]]
+; CHECK-NEXT: [[TMP1:%.*]] = zext nneg i32 [[VAL_FIXED]] to i64
+; CHECK-NEXT: [[ADDR:%.*]] = getelementptr i32, ptr [[ADDR_BEGIN]], i64 [[TMP1]]
+; CHECK-NEXT: [[VAL:%.*]] = load i32, ptr [[ADDR]], align 4
+; CHECK-NEXT: call void @use(i32 [[VAL]])
+; CHECK-NEXT: ret void
+;
%addr_begin = getelementptr i32, ptr %p, i64 40
%addr_fixed = getelementptr i32, ptr %addr_begin, i64 48
%val_fixed = load i32, ptr %addr_fixed, !range !0
@@ -41,9 +58,17 @@ define void @test3(ptr %p, i32 %index) {
}
; Replace sext with zext where possible
define void @test4(ptr %p, i32 %index) {
-; CHECK-LABEL: @test4
-; CHECK: zext
-; CHECK-NOT: sext
+; CHECK-LABEL: define void @test4(
+; CHECK-SAME: ptr [[P:%.*]], i32 [[INDEX:%.*]]) {
+; CHECK-NEXT: [[ADDR_BEGIN:%.*]] = getelementptr i8, ptr [[P]], i64 160
+; CHECK-NEXT: [[ADDR_FIXED:%.*]] = getelementptr i8, ptr [[P]], i64 352
+; CHECK-NEXT: [[VAL_FIXED:%.*]] = load i32, ptr [[ADDR_FIXED]], align 4, !range [[RNG0]]
+; CHECK-NEXT: [[I:%.*]] = zext nneg i32 [[VAL_FIXED]] to i64
+; CHECK-NEXT: [[ADDR:%.*]] = getelementptr i32, ptr [[ADDR_BEGIN]], i64 [[I]]
+; CHECK-NEXT: [[VAL:%.*]] = load i32, ptr [[ADDR]], align 4
+; CHECK-NEXT: call void @use(i32 [[VAL]])
+; CHECK-NEXT: ret void
+;
%addr_begin = getelementptr i32, ptr %p, i64 40
%addr_fixed = getelementptr i32, ptr %addr_begin, i64 48
%val_fixed = load i32, ptr %addr_fixed, !range !0
@@ -57,5 +82,6 @@ define void @test4(ptr %p, i32 %index) {
;; !range !0
!0 = !{i32 0, i32 2147483647}
-
-
+;.
+; CHECK: [[RNG0]] = !{i32 0, i32 2147483647}
+;.
More information about the llvm-commits
mailing list