[llvm] 1f45517 - InstMerge: Convert tests to opaque pointers
Matt Arsenault via llvm-commits
llvm-commits at lists.llvm.org
Mon Nov 28 06:49:29 PST 2022
Author: Matt Arsenault
Date: 2022-11-28T09:49:08-05:00
New Revision: 1f45517f37985345534fb176f2dacdcae086cf15
URL: https://github.com/llvm/llvm-project/commit/1f45517f37985345534fb176f2dacdcae086cf15
DIFF: https://github.com/llvm/llvm-project/commit/1f45517f37985345534fb176f2dacdcae086cf15.diff
LOG: InstMerge: Convert tests to opaque pointers
Added:
Modified:
llvm/test/Transforms/InstMerge/exceptions.ll
llvm/test/Transforms/InstMerge/st_sink_barrier_call.ll
llvm/test/Transforms/InstMerge/st_sink_bugfix_22613.ll
llvm/test/Transforms/InstMerge/st_sink_no_barrier_call.ll
llvm/test/Transforms/InstMerge/st_sink_no_barrier_load.ll
llvm/test/Transforms/InstMerge/st_sink_no_barrier_store.ll
llvm/test/Transforms/InstMerge/st_sink_split_bb.ll
llvm/test/Transforms/InstMerge/st_sink_two_stores.ll
llvm/test/Transforms/InstMerge/st_sink_with_barrier.ll
Removed:
################################################################################
diff --git a/llvm/test/Transforms/InstMerge/exceptions.ll b/llvm/test/Transforms/InstMerge/exceptions.ll
index 8c7be9cb9bdcb..e6d70932aa9fc 100644
--- a/llvm/test/Transforms/InstMerge/exceptions.ll
+++ b/llvm/test/Transforms/InstMerge/exceptions.ll
@@ -9,25 +9,25 @@ target triple = "x86_64-unknown-linux-gnu"
@s = common global i32 0, align 4
; CHECK-LABEL: define void @test1(
-define void @test1(i1 %cmp, i32* noalias %p) {
+define void @test1(i1 %cmp, ptr noalias %p) {
entry:
br i1 %cmp, label %if.then, label %if.else
if.then: ; preds = %entry
call void @may_exit() nounwind
- %arrayidx = getelementptr inbounds i32, i32* %p, i64 1
- %0 = load i32, i32* %arrayidx, align 4
- store i32 %0, i32* @r, align 4
+ %arrayidx = getelementptr inbounds i32, ptr %p, i64 1
+ %0 = load i32, ptr %arrayidx, align 4
+ store i32 %0, ptr @r, align 4
br label %if.end
; CHECK: call void @may_exit()
-; CHECK-NEXT: %[[gep:.*]] = getelementptr inbounds i32, i32* %p, i64 1
-; CHECK-NEXT: %[[load:.*]] = load i32, i32* %[[gep]], align 4
-; CHECK-NEXT: store i32 %[[load]], i32* @r, align 4
+; CHECK-NEXT: %[[gep:.*]] = getelementptr inbounds i32, ptr %p, i64 1
+; CHECK-NEXT: %[[load:.*]] = load i32, ptr %[[gep]], align 4
+; CHECK-NEXT: store i32 %[[load]], ptr @r, align 4
if.else: ; preds = %entry
- %arrayidx1 = getelementptr inbounds i32, i32* %p, i64 1
- %1 = load i32, i32* %arrayidx1, align 4
- store i32 %1, i32* @s, align 4
+ %arrayidx1 = getelementptr inbounds i32, ptr %p, i64 1
+ %1 = load i32, ptr %arrayidx1, align 4
+ store i32 %1, ptr @s, align 4
br label %if.end
if.end: ; preds = %if.else, %if.then
@@ -35,22 +35,22 @@ if.end: ; preds = %if.else, %if.then
}
; CHECK-LABEL: define void @test2(
-define void @test2(i1 %cmp, i32* noalias %p) {
+define void @test2(i1 %cmp, ptr noalias %p) {
entry:
br i1 %cmp, label %if.then, label %if.else
if.then: ; preds = %entry
- %arrayidx = getelementptr inbounds i32, i32* %p, i64 1
- store i32 1, i32* %arrayidx, align 4
+ %arrayidx = getelementptr inbounds i32, ptr %p, i64 1
+ store i32 1, ptr %arrayidx, align 4
call void @may_throw()
-; CHECK: %[[gep:.*]] = getelementptr inbounds i32, i32* %p, i64 1
-; CHECK-NEXT: store i32 1, i32* %[[gep]], align 4
+; CHECK: %[[gep:.*]] = getelementptr inbounds i32, ptr %p, i64 1
+; CHECK-NEXT: store i32 1, ptr %[[gep]], align 4
; CHECK-NEXT: call void @may_throw()
br label %if.end
if.else: ; preds = %entry
- %arrayidx1 = getelementptr inbounds i32, i32* %p, i64 1
- store i32 2, i32* %arrayidx1, align 4
+ %arrayidx1 = getelementptr inbounds i32, ptr %p, i64 1
+ store i32 2, ptr %arrayidx1, align 4
br label %if.end
if.end: ; preds = %if.else, %if.then
diff --git a/llvm/test/Transforms/InstMerge/st_sink_barrier_call.ll b/llvm/test/Transforms/InstMerge/st_sink_barrier_call.ll
index 66742e64736a2..5837b3081d149 100644
--- a/llvm/test/Transforms/InstMerge/st_sink_barrier_call.ll
+++ b/llvm/test/Transforms/InstMerge/st_sink_barrier_call.ll
@@ -3,36 +3,36 @@
; RUN: opt -mldst-motion -S < %s | FileCheck %s
target datalayout = "e-m:o-i64:64-i128:128-n32:64-S128"
-%struct.node = type { i32, %struct.node*, %struct.node*, %struct.node*, i32, i32, i32, i32 }
+%struct.node = type { i32, ptr, ptr, ptr, i32, i32, i32, i32 }
declare i32 @foo(i32 %x)
; Function Attrs: nounwind uwtable
-define void @sink_store(%struct.node* nocapture %r, i32 %index) {
+define void @sink_store(ptr nocapture %r, i32 %index) {
entry:
- %node.0.in16 = getelementptr inbounds %struct.node, %struct.node* %r, i64 0, i32 2
- %node.017 = load %struct.node*, %struct.node** %node.0.in16, align 8
+ %node.0.in16 = getelementptr inbounds %struct.node, ptr %r, i64 0, i32 2
+ %node.017 = load ptr, ptr %node.0.in16, align 8
%index.addr = alloca i32, align 4
- store i32 %index, i32* %index.addr, align 4
- %0 = load i32, i32* %index.addr, align 4
+ store i32 %index, ptr %index.addr, align 4
+ %0 = load i32, ptr %index.addr, align 4
%cmp = icmp slt i32 %0, 0
br i1 %cmp, label %if.then, label %if.else
; CHECK: if.then
if.then: ; preds = %entry
- %1 = load i32, i32* %index.addr, align 4
- %p1 = getelementptr inbounds %struct.node, %struct.node* %node.017, i32 0, i32 6
+ %1 = load i32, ptr %index.addr, align 4
+ %p1 = getelementptr inbounds %struct.node, ptr %node.017, i32 0, i32 6
; CHECK: store i32
- store i32 %1, i32* %p1, align 4
+ store i32 %1, ptr %p1, align 4
br label %if.end
-
+
; CHECK: if.else
if.else: ; preds = %entry
- %2 = load i32, i32* %index.addr, align 4
+ %2 = load i32, ptr %index.addr, align 4
%add = add nsw i32 %2, 1
- %p3 = getelementptr inbounds %struct.node, %struct.node* %node.017, i32 0, i32 6
+ %p3 = getelementptr inbounds %struct.node, ptr %node.017, i32 0, i32 6
; CHECK: store i32
- store i32 %add, i32* %p3, align 4
+ store i32 %add, ptr %p3, align 4
call i32 @foo(i32 5) ;barrier
br label %if.end
diff --git a/llvm/test/Transforms/InstMerge/st_sink_bugfix_22613.ll b/llvm/test/Transforms/InstMerge/st_sink_bugfix_22613.ll
index e5a75cca8ee7e..604aba93ee16b 100644
--- a/llvm/test/Transforms/InstMerge/st_sink_bugfix_22613.ll
+++ b/llvm/test/Transforms/InstMerge/st_sink_bugfix_22613.ll
@@ -22,61 +22,61 @@ target triple = "x86_64-unknown-linux-gnu"
; Function Attrs: nounwind uwtable
define void @fn1() {
entry:
- store i32 0, i32* @d, align 4
+ store i32 0, ptr @d, align 4
br label %for.cond
for.cond: ; preds = %for.inc8, %entry
- %0 = load i32, i32* @d, align 4
+ %0 = load i32, ptr @d, align 4
%cmp = icmp slt i32 %0, 2
br i1 %cmp, label %for.body, label %for.end10
for.body: ; preds = %for.cond
- %1 = load i32, i32* @d, align 4
+ %1 = load i32, ptr @d, align 4
%idxprom = sext i32 %1 to i64
- %2 = load i32, i32* @b, align 4
+ %2 = load i32, ptr @b, align 4
%idxprom1 = sext i32 %2 to i64
- %arrayidx = getelementptr inbounds [1 x [3 x i8]], [1 x [3 x i8]]* @f, i32 0, i64 %idxprom1
- %arrayidx2 = getelementptr inbounds [3 x i8], [3 x i8]* %arrayidx, i32 0, i64 %idxprom
- store i8 0, i8* %arrayidx2, align 1
- store i32 0, i32* @e, align 4
+ %arrayidx = getelementptr inbounds [1 x [3 x i8]], ptr @f, i32 0, i64 %idxprom1
+ %arrayidx2 = getelementptr inbounds [3 x i8], ptr %arrayidx, i32 0, i64 %idxprom
+ store i8 0, ptr %arrayidx2, align 1
+ store i32 0, ptr @e, align 4
br label %for.cond3
for.cond3: ; preds = %for.inc, %for.body
- %3 = load i32, i32* @e, align 4
+ %3 = load i32, ptr @e, align 4
%cmp4 = icmp slt i32 %3, 3
br i1 %cmp4, label %for.body5, label %for.end
for.body5: ; preds = %for.cond3
- %4 = load i32, i32* @c, align 4
+ %4 = load i32, ptr @c, align 4
%tobool = icmp ne i32 %4, 0
br i1 %tobool, label %if.then, label %if.end
if.then: ; preds = %for.body5
- %5 = load i32, i32* @a, align 4
+ %5 = load i32, ptr @a, align 4
%dec = add nsw i32 %5, -1
- store i32 %dec, i32* @a, align 4
+ store i32 %dec, ptr @a, align 4
br label %if.end
if.end: ; preds = %if.then, %for.body5
- %6 = load i32, i32* @e, align 4
+ %6 = load i32, ptr @e, align 4
%idxprom6 = sext i32 %6 to i64
- %arrayidx7 = getelementptr inbounds [3 x i8], [3 x i8]* getelementptr inbounds ([1 x [3 x i8]], [1 x [3 x i8]]* @f, i32 0, i64 0), i32 0, i64 %idxprom6
- store i8 1, i8* %arrayidx7, align 1
+ %arrayidx7 = getelementptr inbounds [3 x i8], ptr @f, i32 0, i64 %idxprom6
+ store i8 1, ptr %arrayidx7, align 1
br label %for.inc
for.inc: ; preds = %if.end
- %7 = load i32, i32* @e, align 4
+ %7 = load i32, ptr @e, align 4
%inc = add nsw i32 %7, 1
- store i32 %inc, i32* @e, align 4
+ store i32 %inc, ptr @e, align 4
br label %for.cond3
for.end: ; preds = %for.cond3
br label %for.inc8
for.inc8: ; preds = %for.end
- %8 = load i32, i32* @d, align 4
+ %8 = load i32, ptr @d, align 4
%inc9 = add nsw i32 %8, 1
- store i32 %inc9, i32* @d, align 4
+ store i32 %inc9, ptr @d, align 4
br label %for.cond
for.end10: ; preds = %for.cond
@@ -87,9 +87,9 @@ for.end10: ; preds = %for.cond
define i32 @main() {
entry:
%retval = alloca i32, align 4
- store i32 0, i32* %retval
+ store i32 0, ptr %retval
call void @fn1()
- %0 = load i8, i8* getelementptr inbounds ([1 x [3 x i8]], [1 x [3 x i8]]* @f, i32 0, i64 0, i64 1), align 1
+ %0 = load i8, ptr getelementptr inbounds ([1 x [3 x i8]], ptr @f, i32 0, i64 0, i64 1), align 1
%conv = sext i8 %0 to i32
%cmp = icmp ne i32 %conv, 1
br i1 %cmp, label %if.then, label %if.end
diff --git a/llvm/test/Transforms/InstMerge/st_sink_no_barrier_call.ll b/llvm/test/Transforms/InstMerge/st_sink_no_barrier_call.ll
index c6c40dfec49d0..cd25a92c58136 100644
--- a/llvm/test/Transforms/InstMerge/st_sink_no_barrier_call.ll
+++ b/llvm/test/Transforms/InstMerge/st_sink_no_barrier_call.ll
@@ -3,36 +3,36 @@
; RUN: opt -mldst-motion -S < %s | FileCheck %s
target datalayout = "e-m:o-i64:64-i128:128-n32:64-S128"
-%struct.node = type { i32, %struct.node*, %struct.node*, %struct.node*, i32, i32, i32, i32 }
+%struct.node = type { i32, ptr, ptr, ptr, i32, i32, i32, i32 }
declare i32 @foo(i32 %x) #0
; Function Attrs: nounwind uwtable
-define void @sink_store(%struct.node* nocapture %r, i32 %index) {
+define void @sink_store(ptr nocapture %r, i32 %index) {
entry:
- %node.0.in16 = getelementptr inbounds %struct.node, %struct.node* %r, i64 0, i32 2
- %node.017 = load %struct.node*, %struct.node** %node.0.in16, align 8
+ %node.0.in16 = getelementptr inbounds %struct.node, ptr %r, i64 0, i32 2
+ %node.017 = load ptr, ptr %node.0.in16, align 8
%index.addr = alloca i32, align 4
- store i32 %index, i32* %index.addr, align 4
- %0 = load i32, i32* %index.addr, align 4
+ store i32 %index, ptr %index.addr, align 4
+ %0 = load i32, ptr %index.addr, align 4
%cmp = icmp slt i32 %0, 0
br i1 %cmp, label %if.then, label %if.else
; CHECK: if.then
if.then: ; preds = %entry
- %1 = load i32, i32* %index.addr, align 4
- %p1 = getelementptr inbounds %struct.node, %struct.node* %node.017, i32 0, i32 6
+ %1 = load i32, ptr %index.addr, align 4
+ %p1 = getelementptr inbounds %struct.node, ptr %node.017, i32 0, i32 6
; CHECK-NOT: store i32
- store i32 %1, i32* %p1, align 4
+ store i32 %1, ptr %p1, align 4
br label %if.end
-
+
; CHECK: if.else
if.else: ; preds = %entry
- %2 = load i32, i32* %index.addr, align 4
+ %2 = load i32, ptr %index.addr, align 4
%add = add nsw i32 %2, 1
- %p3 = getelementptr inbounds %struct.node, %struct.node* %node.017, i32 0, i32 6
+ %p3 = getelementptr inbounds %struct.node, ptr %node.017, i32 0, i32 6
; CHECK-NOT: store i32
- store i32 %add, i32* %p3, align 4
+ store i32 %add, ptr %p3, align 4
call i32 @foo(i32 5) nounwind ;not a barrier
br label %if.end
@@ -42,4 +42,4 @@ if.end: ; preds = %if.else, %if.then
ret void
}
-attributes #0 = { readnone }
+attributes #0 = { readnone }
diff --git a/llvm/test/Transforms/InstMerge/st_sink_no_barrier_load.ll b/llvm/test/Transforms/InstMerge/st_sink_no_barrier_load.ll
index ac94c8a2761e4..bfa58c7bd7597 100644
--- a/llvm/test/Transforms/InstMerge/st_sink_no_barrier_load.ll
+++ b/llvm/test/Transforms/InstMerge/st_sink_no_barrier_load.ll
@@ -3,37 +3,37 @@
; RUN: opt -mldst-motion -S < %s | FileCheck %s
target datalayout = "e-m:o-i64:64-i128:128-n32:64-S128"
-%struct.node = type { i32, %struct.node*, %struct.node*, %struct.node*, i32, i32, i32, i32 }
+%struct.node = type { i32, ptr, ptr, ptr, i32, i32, i32, i32 }
; Function Attrs: nounwind uwtable
-define void @sink_store(%struct.node* nocapture %r, i32 %index) {
+define void @sink_store(ptr nocapture %r, i32 %index) {
entry:
- %node.0.in16 = getelementptr inbounds %struct.node, %struct.node* %r, i64 0, i32 2
- %node.017 = load %struct.node*, %struct.node** %node.0.in16, align 8
+ %node.0.in16 = getelementptr inbounds %struct.node, ptr %r, i64 0, i32 2
+ %node.017 = load ptr, ptr %node.0.in16, align 8
%index.addr = alloca i32, align 4
- store i32 %index, i32* %index.addr, align 4
- %0 = load i32, i32* %index.addr, align 4
+ store i32 %index, ptr %index.addr, align 4
+ %0 = load i32, ptr %index.addr, align 4
%cmp = icmp slt i32 %0, 0
br i1 %cmp, label %if.then, label %if.else
; CHECK: if.then
if.then: ; preds = %entry
- %1 = load i32, i32* %index.addr, align 4
- %p1 = getelementptr inbounds %struct.node, %struct.node* %node.017, i32 0, i32 6
+ %1 = load i32, ptr %index.addr, align 4
+ %p1 = getelementptr inbounds %struct.node, ptr %node.017, i32 0, i32 6
; CHECK-NOT: store i32
- store i32 %1, i32* %p1, align 4
- %p2 = getelementptr inbounds %struct.node, %struct.node* %node.017, i32 5, i32 6
- ; CHECK: load i32, i32*
- %not_barrier = load i32 , i32 * %p2, align 4
+ store i32 %1, ptr %p1, align 4
+ %p2 = getelementptr inbounds %struct.node, ptr %node.017, i32 5, i32 6
+ ; CHECK: load i32, ptr
+ %not_barrier = load i32 , ptr %p2, align 4
br label %if.end
; CHECK: if.else
if.else: ; preds = %entry
- %2 = load i32, i32* %index.addr, align 4
+ %2 = load i32, ptr %index.addr, align 4
%add = add nsw i32 %2, 1
- %p3 = getelementptr inbounds %struct.node, %struct.node* %node.017, i32 0, i32 6
+ %p3 = getelementptr inbounds %struct.node, ptr %node.017, i32 0, i32 6
; CHECK-NOT: store i32
- store i32 %add, i32* %p3, align 4
+ store i32 %add, ptr %p3, align 4
br label %if.end
; CHECK: if.end
diff --git a/llvm/test/Transforms/InstMerge/st_sink_no_barrier_store.ll b/llvm/test/Transforms/InstMerge/st_sink_no_barrier_store.ll
index 351182907795a..27871a3fc3d69 100644
--- a/llvm/test/Transforms/InstMerge/st_sink_no_barrier_store.ll
+++ b/llvm/test/Transforms/InstMerge/st_sink_no_barrier_store.ll
@@ -3,36 +3,36 @@
; RUN: opt -mldst-motion -S < %s | FileCheck %s
target datalayout = "e-m:o-i64:64-i128:128-n32:64-S128"
-%struct.node = type { i32, %struct.node*, %struct.node*, %struct.node*, i32, i32, i32, i32 }
+%struct.node = type { i32, ptr, ptr, ptr, i32, i32, i32, i32 }
; Function Attrs: nounwind uwtable
-define void @sink_store(%struct.node* nocapture %r, i32 %index) {
+define void @sink_store(ptr nocapture %r, i32 %index) {
entry:
- %node.0.in16 = getelementptr inbounds %struct.node, %struct.node* %r, i64 0, i32 2
- %node.017 = load %struct.node*, %struct.node** %node.0.in16, align 8
+ %node.0.in16 = getelementptr inbounds %struct.node, ptr %r, i64 0, i32 2
+ %node.017 = load ptr, ptr %node.0.in16, align 8
%index.addr = alloca i32, align 4
- store i32 %index, i32* %index.addr, align 4
- %0 = load i32, i32* %index.addr, align 4
+ store i32 %index, ptr %index.addr, align 4
+ %0 = load i32, ptr %index.addr, align 4
%cmp = icmp slt i32 %0, 0
br i1 %cmp, label %if.then, label %if.else
; CHECK: if.then
if.then: ; preds = %entry
- %1 = load i32, i32* %index.addr, align 4
- %p1 = getelementptr inbounds %struct.node, %struct.node* %node.017, i32 0, i32 6
+ %1 = load i32, ptr %index.addr, align 4
+ %p1 = getelementptr inbounds %struct.node, ptr %node.017, i32 0, i32 6
; CHECK-NOT: store i32
- store i32 %1, i32* %p1, align 4
+ store i32 %1, ptr %p1, align 4
br label %if.end
; CHECK: if.else
if.else: ; preds = %entry
- %2 = load i32, i32* %index.addr, align 4
+ %2 = load i32, ptr %index.addr, align 4
%add = add nsw i32 %2, 1
- %p2 = getelementptr inbounds %struct.node, %struct.node* %node.017, i32 0, i32 6
- store i32 %add, i32* %p2, align 4
- %p3 = getelementptr inbounds %struct.node, %struct.node* %node.017, i32 5, i32 6
+ %p2 = getelementptr inbounds %struct.node, ptr %node.017, i32 0, i32 6
+ store i32 %add, ptr %p2, align 4
+ %p3 = getelementptr inbounds %struct.node, ptr %node.017, i32 5, i32 6
; CHECK: store i32
- store i32 %add, i32* %p3, align 4 ; This is not a barrier
+ store i32 %add, ptr %p3, align 4 ; This is not a barrier
br label %if.end
; CHECK: if.end
diff --git a/llvm/test/Transforms/InstMerge/st_sink_split_bb.ll b/llvm/test/Transforms/InstMerge/st_sink_split_bb.ll
index 0a8dc2ddc4d82..032a876f5fcec 100644
--- a/llvm/test/Transforms/InstMerge/st_sink_split_bb.ll
+++ b/llvm/test/Transforms/InstMerge/st_sink_split_bb.ll
@@ -13,28 +13,28 @@ target datalayout = "e-m:o-i64:64-i128:128-n32:64-S128"
; CHECK-INV-YES: Invalidating analysis: DominatorTreeAnalysis
; Function Attrs: nounwind uwtable
-define dso_local void @st_sink_split_bb(i32* nocapture %arg, i32* nocapture %arg1, i1 zeroext %arg2, i1 zeroext %arg3) local_unnamed_addr {
+define dso_local void @st_sink_split_bb(ptr nocapture %arg, ptr nocapture %arg1, i1 zeroext %arg2, i1 zeroext %arg3) local_unnamed_addr {
; CHECK-NO-LABEL: @st_sink_split_bb(
; CHECK-NO-NEXT: bb:
; CHECK-NO-NEXT: br i1 [[ARG2:%.*]], label [[BB4:%.*]], label [[BB5:%.*]]
; CHECK-NO: bb4:
-; CHECK-NO-NEXT: store i32 1, i32* [[ARG:%.*]], align 4
+; CHECK-NO-NEXT: store i32 1, ptr [[ARG:%.*]], align 4
; CHECK-NO-NEXT: br label [[BB9:%.*]]
; CHECK-NO: bb5:
; CHECK-NO-NEXT: br i1 [[ARG3:%.*]], label [[BB6:%.*]], label [[BB7:%.*]]
; CHECK-NO: bb6:
-; CHECK-NO-NEXT: store i32 2, i32* [[ARG]], align 4
-; CHECK-NO-NEXT: [[TMP1:%.*]] = getelementptr inbounds i32, i32* [[ARG1:%.*]], i64 1
-; CHECK-NO-NEXT: store i32 3, i32* [[TMP1]], align 4
-; CHECK-NO-NEXT: [[TMP:%.*]] = getelementptr inbounds i32, i32* [[ARG1]], i64 2
-; CHECK-NO-NEXT: store i32 3, i32* [[TMP]], align 4
+; CHECK-NO-NEXT: store i32 2, ptr [[ARG]], align 4
+; CHECK-NO-NEXT: [[TMP1:%.*]] = getelementptr inbounds i32, ptr [[ARG1:%.*]], i64 1
+; CHECK-NO-NEXT: store i32 3, ptr [[TMP1]], align 4
+; CHECK-NO-NEXT: [[TMP:%.*]] = getelementptr inbounds i32, ptr [[ARG1]], i64 2
+; CHECK-NO-NEXT: store i32 3, ptr [[TMP]], align 4
; CHECK-NO-NEXT: br label [[BB9]]
; CHECK-NO: bb7:
-; CHECK-NO-NEXT: store i32 3, i32* [[ARG]], align 4
-; CHECK-NO-NEXT: [[TMP2:%.*]] = getelementptr inbounds i32, i32* [[ARG1]], i64 1
-; CHECK-NO-NEXT: store i32 3, i32* [[TMP2]], align 4
-; CHECK-NO-NEXT: [[TMP8:%.*]] = getelementptr inbounds i32, i32* [[ARG1]], i64 2
-; CHECK-NO-NEXT: store i32 3, i32* [[TMP8]], align 4
+; CHECK-NO-NEXT: store i32 3, ptr [[ARG]], align 4
+; CHECK-NO-NEXT: [[TMP2:%.*]] = getelementptr inbounds i32, ptr [[ARG1]], i64 1
+; CHECK-NO-NEXT: store i32 3, ptr [[TMP2]], align 4
+; CHECK-NO-NEXT: [[TMP8:%.*]] = getelementptr inbounds i32, ptr [[ARG1]], i64 2
+; CHECK-NO-NEXT: store i32 3, ptr [[TMP8]], align 4
; CHECK-NO-NEXT: br label [[BB9]]
; CHECK-NO: bb9:
; CHECK-NO-NEXT: ret void
@@ -43,21 +43,21 @@ define dso_local void @st_sink_split_bb(i32* nocapture %arg, i32* nocapture %arg
; CHECK-YES-NEXT: bb:
; CHECK-YES-NEXT: br i1 [[ARG2:%.*]], label [[BB4:%.*]], label [[BB5:%.*]]
; CHECK-YES: bb4:
-; CHECK-YES-NEXT: store i32 1, i32* [[ARG:%.*]], align 4
+; CHECK-YES-NEXT: store i32 1, ptr [[ARG:%.*]], align 4
; CHECK-YES-NEXT: br label [[BB9:%.*]]
; CHECK-YES: bb5:
; CHECK-YES-NEXT: br i1 [[ARG3:%.*]], label [[BB6:%.*]], label [[BB7:%.*]]
; CHECK-YES: bb6:
-; CHECK-YES-NEXT: store i32 2, i32* [[ARG]], align 4
+; CHECK-YES-NEXT: store i32 2, ptr [[ARG]], align 4
; CHECK-YES-NEXT: br label [[BB9_SINK_SPLIT:%.*]]
; CHECK-YES: bb7:
-; CHECK-YES-NEXT: store i32 3, i32* [[ARG]], align 4
+; CHECK-YES-NEXT: store i32 3, ptr [[ARG]], align 4
; CHECK-YES-NEXT: br label [[BB9_SINK_SPLIT]]
; CHECK-YES: bb9.sink.split:
-; CHECK-YES-NEXT: [[TMP0:%.*]] = getelementptr inbounds i32, i32* [[ARG1:%.*]], i64 1
-; CHECK-YES-NEXT: store i32 3, i32* [[TMP0]], align 4
-; CHECK-YES-NEXT: [[TMP1:%.*]] = getelementptr inbounds i32, i32* [[ARG1]], i64 2
-; CHECK-YES-NEXT: store i32 3, i32* [[TMP1]], align 4
+; CHECK-YES-NEXT: [[TMP0:%.*]] = getelementptr inbounds i32, ptr [[ARG1:%.*]], i64 1
+; CHECK-YES-NEXT: store i32 3, ptr [[TMP0]], align 4
+; CHECK-YES-NEXT: [[TMP1:%.*]] = getelementptr inbounds i32, ptr [[ARG1]], i64 2
+; CHECK-YES-NEXT: store i32 3, ptr [[TMP1]], align 4
; CHECK-YES-NEXT: br label [[BB9]]
; CHECK-YES: bb9:
; CHECK-YES-NEXT: ret void
@@ -66,26 +66,26 @@ bb:
br i1 %arg2, label %bb4, label %bb5
bb4: ; preds = %bb
- store i32 1, i32* %arg, align 4
+ store i32 1, ptr %arg, align 4
br label %bb9
bb5: ; preds = %bb
br i1 %arg3, label %bb6, label %bb7
bb6: ; preds = %bb5
- store i32 2, i32* %arg, align 4
- %tmp1 = getelementptr inbounds i32, i32* %arg1, i64 1
- store i32 3, i32* %tmp1, align 4
- %tmp = getelementptr inbounds i32, i32* %arg1, i64 2
- store i32 3, i32* %tmp, align 4
+ store i32 2, ptr %arg, align 4
+ %tmp1 = getelementptr inbounds i32, ptr %arg1, i64 1
+ store i32 3, ptr %tmp1, align 4
+ %tmp = getelementptr inbounds i32, ptr %arg1, i64 2
+ store i32 3, ptr %tmp, align 4
br label %bb9
bb7: ; preds = %bb5
- store i32 3, i32* %arg, align 4
- %tmp2 = getelementptr inbounds i32, i32* %arg1, i64 1
- store i32 3, i32* %tmp2, align 4
- %tmp8 = getelementptr inbounds i32, i32* %arg1, i64 2
- store i32 3, i32* %tmp8, align 4
+ store i32 3, ptr %arg, align 4
+ %tmp2 = getelementptr inbounds i32, ptr %arg1, i64 1
+ store i32 3, ptr %tmp2, align 4
+ %tmp8 = getelementptr inbounds i32, ptr %arg1, i64 2
+ store i32 3, ptr %tmp8, align 4
br label %bb9
diff --git a/llvm/test/Transforms/InstMerge/st_sink_two_stores.ll b/llvm/test/Transforms/InstMerge/st_sink_two_stores.ll
index 0d16a95a619f8..18df7c7cccdc8 100644
--- a/llvm/test/Transforms/InstMerge/st_sink_two_stores.ll
+++ b/llvm/test/Transforms/InstMerge/st_sink_two_stores.ll
@@ -3,40 +3,40 @@
; RUN: opt -mldst-motion -S < %s | FileCheck %s
target datalayout = "e-m:o-i64:64-i128:128-n32:64-S128"
-%struct.node = type { i32, %struct.node*, %struct.node*, %struct.node*, i32, i32, i32, i32 }
+%struct.node = type { i32, ptr, ptr, ptr, i32, i32, i32, i32 }
; Function Attrs: nounwind uwtable
-define void @sink_store(%struct.node* nocapture %r, i32 %index) {
+define void @sink_store(ptr nocapture %r, i32 %index) {
entry:
- %node.0.in16 = getelementptr inbounds %struct.node, %struct.node* %r, i64 0, i32 2
- %node.017 = load %struct.node*, %struct.node** %node.0.in16, align 8
+ %node.0.in16 = getelementptr inbounds %struct.node, ptr %r, i64 0, i32 2
+ %node.017 = load ptr, ptr %node.0.in16, align 8
%index.addr = alloca i32, align 4
- store i32 %index, i32* %index.addr, align 4
- %0 = load i32, i32* %index.addr, align 4
+ store i32 %index, ptr %index.addr, align 4
+ %0 = load i32, ptr %index.addr, align 4
%cmp = icmp slt i32 %0, 0
br i1 %cmp, label %if.then, label %if.else
; CHECK: if.then
if.then: ; preds = %entry
- %1 = load i32, i32* %index.addr, align 4
- %p1 = getelementptr inbounds %struct.node, %struct.node* %node.017, i32 0, i32 6
+ %1 = load i32, ptr %index.addr, align 4
+ %p1 = getelementptr inbounds %struct.node, ptr %node.017, i32 0, i32 6
; CHECK-NOT: store i32
- store i32 %1, i32* %p1, align 4
- %p2 = getelementptr inbounds %struct.node, %struct.node* %node.017, i32 4, i32 6
+ store i32 %1, ptr %p1, align 4
+ %p2 = getelementptr inbounds %struct.node, ptr %node.017, i32 4, i32 6
; CHECK-NOT: store i32
- store i32 %1, i32* %p2, align 4
+ store i32 %1, ptr %p2, align 4
br label %if.end
; CHECK: if.else
if.else: ; preds = %entry
- %2 = load i32, i32* %index.addr, align 4
+ %2 = load i32, ptr %index.addr, align 4
%add = add nsw i32 %2, 1
- %p3 = getelementptr inbounds %struct.node, %struct.node* %node.017, i32 0, i32 6
+ %p3 = getelementptr inbounds %struct.node, ptr %node.017, i32 0, i32 6
; CHECK-NOT: store i32
- store i32 %add, i32* %p3, align 4
- %p4 = getelementptr inbounds %struct.node, %struct.node* %node.017, i32 4, i32 6
+ store i32 %add, ptr %p3, align 4
+ %p4 = getelementptr inbounds %struct.node, ptr %node.017, i32 4, i32 6
; CHECK-NOT: store i32
- store i32 %2, i32* %p4, align 4
+ store i32 %2, ptr %p4, align 4
br label %if.end
; CHECK: if.end
diff --git a/llvm/test/Transforms/InstMerge/st_sink_with_barrier.ll b/llvm/test/Transforms/InstMerge/st_sink_with_barrier.ll
index 18738b27b6893..03a8926fd6cc3 100644
--- a/llvm/test/Transforms/InstMerge/st_sink_with_barrier.ll
+++ b/llvm/test/Transforms/InstMerge/st_sink_with_barrier.ll
@@ -2,37 +2,37 @@
; RUN: opt -mldst-motion -S < %s | FileCheck %s
target datalayout = "e-m:o-i64:64-i128:128-n32:64-S128"
-%struct.node = type { i32, %struct.node*, %struct.node*, %struct.node*, i32, i32, i32, i32 }
+%struct.node = type { i32, ptr, ptr, ptr, i32, i32, i32, i32 }
; Function Attrs: nounwind uwtable
-define void @sink_store(%struct.node* nocapture %r, i32 %index) {
+define void @sink_store(ptr nocapture %r, i32 %index) {
entry:
- %node.0.in16 = getelementptr inbounds %struct.node, %struct.node* %r, i64 0, i32 2
- %node.017 = load %struct.node*, %struct.node** %node.0.in16, align 8
+ %node.0.in16 = getelementptr inbounds %struct.node, ptr %r, i64 0, i32 2
+ %node.017 = load ptr, ptr %node.0.in16, align 8
%index.addr = alloca i32, align 4
- store i32 %index, i32* %index.addr, align 4
- %0 = load i32, i32* %index.addr, align 4
+ store i32 %index, ptr %index.addr, align 4
+ %0 = load i32, ptr %index.addr, align 4
%cmp = icmp slt i32 %0, 0
br i1 %cmp, label %if.then, label %if.else
; CHECK: if.then
if.then: ; preds = %entry
- %1 = load i32, i32* %index.addr, align 4
- %p1 = getelementptr inbounds %struct.node, %struct.node* %node.017, i32 0, i32 6
+ %1 = load i32, ptr %index.addr, align 4
+ %p1 = getelementptr inbounds %struct.node, ptr %node.017, i32 0, i32 6
; CHECK: store i32
- store i32 %1, i32* %p1, align 4
- %p2 = getelementptr inbounds %struct.node, %struct.node* %node.017, i32 0, i32 6
- ; CHECK: load i32, i32*
- %barrier = load i32 , i32 * %p2, align 4
+ store i32 %1, ptr %p1, align 4
+ %p2 = getelementptr inbounds %struct.node, ptr %node.017, i32 0, i32 6
+ ; CHECK: load i32, ptr
+ %barrier = load i32 , ptr %p2, align 4
br label %if.end
; CHECK: if.else
if.else: ; preds = %entry
- %2 = load i32, i32* %index.addr, align 4
+ %2 = load i32, ptr %index.addr, align 4
%add = add nsw i32 %2, 1
- %p3 = getelementptr inbounds %struct.node, %struct.node* %node.017, i32 0, i32 6
+ %p3 = getelementptr inbounds %struct.node, ptr %node.017, i32 0, i32 6
; CHECK: store i32
- store i32 %add, i32* %p3, align 4
+ store i32 %add, ptr %p3, align 4
br label %if.end
; CHECK: if.end
More information about the llvm-commits
mailing list