[llvm] 0718b19 - [InstCombine] Regenerate test checks (NFC)
Nikita Popov via llvm-commits
llvm-commits at lists.llvm.org
Wed Apr 5 06:05:40 PDT 2023
Author: Nikita Popov
Date: 2023-04-05T15:05:16+02:00
New Revision: 0718b196bc0ba57702494e5414f3e5bb2f78f38d
URL: https://github.com/llvm/llvm-project/commit/0718b196bc0ba57702494e5414f3e5bb2f78f38d
DIFF: https://github.com/llvm/llvm-project/commit/0718b196bc0ba57702494e5414f3e5bb2f78f38d.diff
LOG: [InstCombine] Regenerate test checks (NFC)
Added:
Modified:
llvm/test/Transforms/InstCombine/2011-06-13-nsw-alloca.ll
llvm/test/Transforms/InstCombine/2011-09-03-Trampoline.ll
llvm/test/Transforms/InstCombine/2011-10-07-AlignPromotion.ll
Removed:
################################################################################
diff --git a/llvm/test/Transforms/InstCombine/2011-06-13-nsw-alloca.ll b/llvm/test/Transforms/InstCombine/2011-06-13-nsw-alloca.ll
index 0c1b4bc4dc76..343aa547acc3 100644
--- a/llvm/test/Transforms/InstCombine/2011-06-13-nsw-alloca.ll
+++ b/llvm/test/Transforms/InstCombine/2011-06-13-nsw-alloca.ll
@@ -1,13 +1,32 @@
+; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 2
; RUN: opt -opaque-pointers=0 -S -passes=instcombine < %s | FileCheck %s
target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128-n8:16:32"
target triple = "i386-apple-darwin10.0.0"
-; CHECK-LABEL: define void @fu1(
define void @fu1(i32 %parm) #0 {
+; CHECK-LABEL: define void @fu1
+; CHECK-SAME: (i32 [[PARM:%.*]]) #[[ATTR0:[0-9]+]] {
+; CHECK-NEXT: bb:
+; CHECK-NEXT: [[I:%.*]] = alloca i32, align 4
+; CHECK-NEXT: [[PTR:%.*]] = alloca double*, align 4
+; CHECK-NEXT: store i32 [[PARM]], i32* [[I]], align 4
+; CHECK-NEXT: store double* null, double** [[PTR]], align 4
+; CHECK-NEXT: [[I2_NOT:%.*]] = icmp eq i32 [[PARM]], 0
+; CHECK-NEXT: br i1 [[I2_NOT]], label [[BB9:%.*]], label [[BB3:%.*]]
+; CHECK: bb3:
+; CHECK-NEXT: [[I4:%.*]] = load i32, i32* [[I]], align 4
+; CHECK-NEXT: [[TMP0:%.*]] = add i32 [[I4]], 256
+; CHECK-NEXT: [[I7:%.*]] = alloca double, i32 [[TMP0]], align 1
+; CHECK-NEXT: store double* [[I7]], double** [[PTR]], align 4
+; CHECK-NEXT: br label [[BB9]]
+; CHECK: bb9:
+; CHECK-NEXT: [[I10:%.*]] = load double*, double** [[PTR]], align 4
+; CHECK-NEXT: call void @bar(double* [[I10]]) #[[ATTR1:[0-9]+]]
+; CHECK-NEXT: ret void
+;
bb:
%i = alloca i32, align 4
- ; CHECK: alloca double*
%ptr = alloca double*, align 4
store i32 %parm, i32* %i, align 4
store double* null, double** %ptr, align 4
@@ -21,10 +40,8 @@ bb3: ; preds = %bb
; With "nuw", the alloca and its bitcast can be fused:
%i6 = add nuw i32 %i5, 2048
- ; CHECK: alloca double
%i7 = alloca i8, i32 %i6, align 1
%i8 = bitcast i8* %i7 to double*
- ; CHECK-NEXT: store double*
store double* %i8, double** %ptr, align 4
br label %bb9
@@ -36,8 +53,29 @@ bb9: ; preds = %bb3, %bb
declare void @bar(double*)
-; CHECK-LABEL: define void @fu2(
define void @fu2(i32 %parm) #0 {
+; CHECK-LABEL: define void @fu2
+; CHECK-SAME: (i32 [[PARM:%.*]]) #[[ATTR0]] {
+; CHECK-NEXT: bb:
+; CHECK-NEXT: [[I:%.*]] = alloca i32, align 4
+; CHECK-NEXT: [[PTR:%.*]] = alloca double*, align 4
+; CHECK-NEXT: store i32 [[PARM]], i32* [[I]], align 4
+; CHECK-NEXT: store double* null, double** [[PTR]], align 4
+; CHECK-NEXT: [[I2_NOT:%.*]] = icmp eq i32 [[PARM]], 0
+; CHECK-NEXT: br i1 [[I2_NOT]], label [[BB9:%.*]], label [[BB3:%.*]]
+; CHECK: bb3:
+; CHECK-NEXT: [[I4:%.*]] = load i32, i32* [[I]], align 4
+; CHECK-NEXT: [[I5:%.*]] = shl nuw i32 [[I4]], 3
+; CHECK-NEXT: [[I6:%.*]] = add i32 [[I5]], 2048
+; CHECK-NEXT: [[I7:%.*]] = alloca i8, i32 [[I6]], align 1
+; CHECK-NEXT: [[TMP0:%.*]] = bitcast double** [[PTR]] to i8**
+; CHECK-NEXT: store i8* [[I7]], i8** [[TMP0]], align 4
+; CHECK-NEXT: br label [[BB9]]
+; CHECK: bb9:
+; CHECK-NEXT: [[I10:%.*]] = load double*, double** [[PTR]], align 4
+; CHECK-NEXT: call void @bar(double* [[I10]]) #[[ATTR1]]
+; CHECK-NEXT: ret void
+;
bb:
%i = alloca i32, align 4
%ptr = alloca double*, align 4
@@ -52,11 +90,8 @@ bb3: ; preds = %bb
%i5 = mul nuw i32 %i4, 8
; Without "nuw", the alloca and its bitcast cannot be fused:
%i6 = add i32 %i5, 2048
- ; CHECK: alloca i8
%i7 = alloca i8, i32 %i6, align 1
- ; CHECK-NEXT: bitcast double**
- ; CHECK-NEXT: store i8*
%i8 = bitcast i8* %i7 to double*
store double* %i8, double** %ptr, align 4
br label %bb9
diff --git a/llvm/test/Transforms/InstCombine/2011-09-03-Trampoline.ll b/llvm/test/Transforms/InstCombine/2011-09-03-Trampoline.ll
index 2fb3eda424d0..fae18ce39979 100644
--- a/llvm/test/Transforms/InstCombine/2011-09-03-Trampoline.ll
+++ b/llvm/test/Transforms/InstCombine/2011-09-03-Trampoline.ll
@@ -1,3 +1,4 @@
+; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 2
; RUN: opt -opaque-pointers=0 -passes=instcombine -S < %s | FileCheck %s
declare void @llvm.init.trampoline(i8*, i8*, i8*)
@@ -6,47 +7,69 @@ declare i32 @f(i8 * nest, i32)
; Most common case
define i32 @test0(i32 %n) !dbg !4 {
+; CHECK-LABEL: define i32 @test0
+; CHECK-SAME: (i32 [[N:%.*]]) !dbg [[DBG4:![0-9]+]] {
+; CHECK-NEXT: [[ALLOCA:%.*]] = alloca [10 x i8], align 16
+; CHECK-NEXT: [[GEP:%.*]] = getelementptr inbounds [10 x i8], [10 x i8]* [[ALLOCA]], i64 0, i64 0
+; CHECK-NEXT: call void @llvm.init.trampoline(i8* nonnull [[GEP]], i8* nonnull bitcast (i32 (i8*, i32)* @f to i8*), i8* null)
+; CHECK-NEXT: [[RET:%.*]] = call i32 @f(i8* nest null, i32 [[N]]), !dbg [[DBG10:![0-9]+]]
+; CHECK-NEXT: ret i32 [[RET]]
+;
%alloca = alloca [10 x i8], align 16
%gep = getelementptr [10 x i8], [10 x i8]* %alloca, i32 0, i32 0
call void @llvm.init.trampoline(i8* %gep, i8* bitcast (i32 (i8*, i32)* @f to i8*),
- i8* null)
+ i8* null)
%tramp = call i8* @llvm.adjust.trampoline(i8* %gep)
%function = bitcast i8* %tramp to i32(i32)*
%ret = call i32 %function(i32 %n), !dbg !10
ret i32 %ret
-; CHECK: define i32 @test0(i32 %n) !dbg !4 {
-; CHECK: %ret = call i32 @f(i8* nest null, i32 %n), !dbg !10
}
define i32 @test1(i32 %n, i8* %trampmem) {
+; CHECK-LABEL: define i32 @test1
+; CHECK-SAME: (i32 [[N:%.*]], i8* [[TRAMPMEM:%.*]]) {
+; CHECK-NEXT: call void @llvm.init.trampoline(i8* [[TRAMPMEM]], i8* nonnull bitcast (i32 (i8*, i32)* @f to i8*), i8* null)
+; CHECK-NEXT: [[RET:%.*]] = call i32 @f(i8* nest null, i32 [[N]])
+; CHECK-NEXT: ret i32 [[RET]]
+;
call void @llvm.init.trampoline(i8* %trampmem,
- i8* bitcast (i32 (i8*, i32)* @f to i8*),
- i8* null)
+ i8* bitcast (i32 (i8*, i32)* @f to i8*),
+ i8* null)
%tramp = call i8* @llvm.adjust.trampoline(i8* %trampmem)
%function = bitcast i8* %tramp to i32(i32)*
%ret = call i32 %function(i32 %n)
ret i32 %ret
-; CHECK: define i32 @test1(i32 %n, i8* %trampmem) {
-; CHECK: %ret = call i32 @f(i8* nest null, i32 %n)
}
define i32 @test2(i32 %n, i8* %trampmem) {
+; CHECK-LABEL: define i32 @test2
+; CHECK-SAME: (i32 [[N:%.*]], i8* [[TRAMPMEM:%.*]]) {
+; CHECK-NEXT: [[TRAMP:%.*]] = call i8* @llvm.adjust.trampoline(i8* [[TRAMPMEM]])
+; CHECK-NEXT: [[FUNCTIONA:%.*]] = bitcast i8* [[TRAMP]] to i32 (i32)*
+; CHECK-NEXT: [[RET:%.*]] = call i32 [[FUNCTIONA]](i32 [[N]])
+; CHECK-NEXT: ret i32 [[RET]]
+;
%tramp = call i8* @llvm.adjust.trampoline(i8* %trampmem)
%functiona = bitcast i8* %tramp to i32(i32)*
%ret = call i32 %functiona(i32 %n)
ret i32 %ret
-; CHECK: define i32 @test2(i32 %n, i8* %trampmem) {
-; CHECK: %ret = call i32 %functiona(i32 %n)
}
define i32 @test3(i32 %n, i8* %trampmem) {
+; CHECK-LABEL: define i32 @test3
+; CHECK-SAME: (i32 [[N:%.*]], i8* [[TRAMPMEM:%.*]]) {
+; CHECK-NEXT: call void @llvm.init.trampoline(i8* [[TRAMPMEM]], i8* nonnull bitcast (i32 (i8*, i32)* @f to i8*), i8* null)
+; CHECK-NEXT: [[RET0:%.*]] = call i32 @f(i8* nest null, i32 [[N]])
+; CHECK-NEXT: [[TRAMP1:%.*]] = call i8* @llvm.adjust.trampoline(i8* [[TRAMPMEM]])
+; CHECK-NEXT: [[FUNCTION1:%.*]] = bitcast i8* [[TRAMP1]] to i32 (i32)*
+; CHECK-NEXT: [[RET1:%.*]] = call i32 [[FUNCTION1]](i32 [[N]])
+; CHECK-NEXT: ret i32 [[RET1]]
+;
call void @llvm.init.trampoline(i8* %trampmem,
- i8* bitcast (i32 (i8*, i32)* @f to i8*),
- i8* null)
+ i8* bitcast (i32 (i8*, i32)* @f to i8*),
+ i8* null)
-; CHECK: define i32 @test3(i32 %n, i8* %trampmem) {
-; CHECK: %ret0 = call i32 @f(i8* nest null, i32 %n)
%tramp0 = call i8* @llvm.adjust.trampoline(i8* %trampmem)
%function0 = bitcast i8* %tramp0 to i32(i32)*
%ret0 = call i32 %function0(i32 %n)
@@ -55,16 +78,25 @@ define i32 @test3(i32 %n, i8* %trampmem) {
%tramp1 = call i8* @llvm.adjust.trampoline(i8* %trampmem)
%function1 = bitcast i8* %tramp1 to i32(i32)*
%ret1 = call i32 %function1(i32 %n)
-; CHECK: %ret1 = call i32 %function1(i32 %n)
ret i32 %ret1
}
define i32 @test4(i32 %n) {
+; CHECK-LABEL: define i32 @test4
+; CHECK-SAME: (i32 [[N:%.*]]) {
+; CHECK-NEXT: [[ALLOCA:%.*]] = alloca [10 x i8], align 16
+; CHECK-NEXT: [[GEP:%.*]] = getelementptr inbounds [10 x i8], [10 x i8]* [[ALLOCA]], i64 0, i64 0
+; CHECK-NEXT: call void @llvm.init.trampoline(i8* nonnull [[GEP]], i8* nonnull bitcast (i32 (i8*, i32)* @f to i8*), i8* null)
+; CHECK-NEXT: [[RET0:%.*]] = call i32 @f(i8* nest null, i32 [[N]])
+; CHECK-NEXT: [[RET1:%.*]] = call i32 @f(i8* nest null, i32 [[N]])
+; CHECK-NEXT: [[RET2:%.*]] = call i32 @f(i8* nest null, i32 [[N]])
+; CHECK-NEXT: ret i32 [[RET2]]
+;
%alloca = alloca [10 x i8], align 16
%gep = getelementptr [10 x i8], [10 x i8]* %alloca, i32 0, i32 0
call void @llvm.init.trampoline(i8* %gep, i8* bitcast (i32 (i8*, i32)* @f to i8*),
- i8* null)
+ i8* null)
%tramp0 = call i8* @llvm.adjust.trampoline(i8* %gep)
%function0 = bitcast i8* %tramp0 to i32(i32)*
@@ -80,10 +112,6 @@ define i32 @test4(i32 %n) {
ret i32 %ret2
-; CHECK: define i32 @test4(i32 %n) {
-; CHECK: %ret0 = call i32 @f(i8* nest null, i32 %n)
-; CHECK: %ret1 = call i32 @f(i8* nest null, i32 %n)
-; CHECK: %ret2 = call i32 @f(i8* nest null, i32 %n)
}
!llvm.dbg.cu = !{!0}
diff --git a/llvm/test/Transforms/InstCombine/2011-10-07-AlignPromotion.ll b/llvm/test/Transforms/InstCombine/2011-10-07-AlignPromotion.ll
index e5193b03da85..abe0cc1dd185 100644
--- a/llvm/test/Transforms/InstCombine/2011-10-07-AlignPromotion.ll
+++ b/llvm/test/Transforms/InstCombine/2011-10-07-AlignPromotion.ll
@@ -1,3 +1,4 @@
+; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 2
; RUN: opt -opaque-pointers=0 -S -passes=instcombine < %s | FileCheck %s
; rdar://problem/10063307
target datalayout = "e-p:32:32:32-i1:8:32-i8:8:32-i16:16:32-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:32:64-v128:32:128-a0:0:32-n32-S32"
@@ -7,6 +8,15 @@ target triple = "thumbv7-apple-ios5.0.0"
%struct.CGPoint = type { float, float }
define void @t(%struct.CGPoint* %a) nounwind {
+; CHECK-LABEL: define void @t
+; CHECK-SAME: (%struct.CGPoint* [[A:%.*]]) #[[ATTR0:[0-9]+]] {
+; CHECK-NEXT: [[POINT:%.*]] = alloca i64, align 4
+; CHECK-NEXT: [[TMP1:%.*]] = bitcast %struct.CGPoint* [[A]] to i64*
+; CHECK-NEXT: [[TMP2:%.*]] = load i64, i64* [[TMP1]], align 4
+; CHECK-NEXT: store i64 [[TMP2]], i64* [[POINT]], align 4
+; CHECK-NEXT: call void @foo(i64* nonnull [[POINT]]) #[[ATTR0]]
+; CHECK-NEXT: ret void
+;
%Point = alloca %struct.CGPoint, align 4
%1 = bitcast %struct.CGPoint* %a to i64*
%2 = bitcast %struct.CGPoint* %Point to i64*
@@ -14,7 +24,6 @@ define void @t(%struct.CGPoint* %a) nounwind {
store i64 %3, i64* %2, align 4
call void @foo(i64* %2) nounwind
ret void
-; CHECK: %Point = alloca i64, align 4
}
declare void @foo(i64*)
More information about the llvm-commits
mailing list