[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