[llvm] r264526 - minimize test cases

Sanjay Patel via llvm-commits llvm-commits at lists.llvm.org
Sat Mar 26 16:09:26 PDT 2016


Author: spatel
Date: Sat Mar 26 18:09:25 2016
New Revision: 264526

URL: http://llvm.org/viewvc/llvm-project?rev=264526&view=rev
Log:
minimize test cases

These are tests for store transforms. 
The loads, adds, and geps were irrelevant.

Modified:
    llvm/trunk/test/Transforms/SimplifyCFG/speculate-store.ll

Modified: llvm/trunk/test/Transforms/SimplifyCFG/speculate-store.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Transforms/SimplifyCFG/speculate-store.ll?rev=264526&r1=264525&r2=264526&view=diff
==============================================================================
--- llvm/trunk/test/Transforms/SimplifyCFG/speculate-store.ll (original)
+++ llvm/trunk/test/Transforms/SimplifyCFG/speculate-store.ll Sat Mar 26 18:09:25 2016
@@ -1,108 +1,87 @@
 ; RUN: opt -simplifycfg -S < %s | FileCheck %s
 
-define void @ifconvertstore(i32 %m, i32* %A, i32* %B, i32 %C, i32 %D) {
+define void @ifconvertstore(i32* %A, i32 %B, i32 %C, i32 %D) {
+; CHECK-LABEL: @ifconvertstore(
+; CHECK:         store i32 %B, i32* %A
+; CHECK-NEXT:    [[CMP:%.*]] = icmp sgt i32 %D, 42
+; CHECK-NEXT:    [[C_B:%.*]] = select i1 [[CMP]], i32 %C, i32 %B
+; CHECK-NEXT:    store i32 [[C_B]], i32* %A
+; CHECK-NEXT:    ret void
+;
 entry:
-  %arrayidx = getelementptr inbounds i32, i32* %B, i64 0
-  %0 = load i32, i32* %arrayidx, align 4
-  %add = add nsw i32 %0, %C
-  %arrayidx2 = getelementptr inbounds i32, i32* %A, i64 0
-
 ; First store to the location.
-  store i32 %add, i32* %arrayidx2, align 4
-  %arrayidx4 = getelementptr inbounds i32, i32* %B, i64 1
-  %1 = load i32, i32* %arrayidx4, align 4
-  %add5 = add nsw i32 %1, %D
-  %cmp6 = icmp sgt i32 %add5, %C
-  br i1 %cmp6, label %if.then, label %ret.end
+  store i32 %B, i32* %A
+  %cmp = icmp sgt i32 %D, 42
+  br i1 %cmp, label %if.then, label %ret.end
 
 ; Make sure we speculate stores like the following one. It is cheap compared to
 ; a mispredicated branch.
-; CHECK-LABEL: @ifconvertstore(
-; CHECK: %add5.add = select i1 %cmp6, i32 %add5, i32 %add
-; CHECK: store i32 %add5.add, i32* %arrayidx2, align 4
 if.then:
-  store i32 %add5, i32* %arrayidx2, align 4
+  store i32 %C, i32* %A
   br label %ret.end
 
 ret.end:
   ret void
 }
 
-define void @noifconvertstore1(i32 %m, i32* %A, i32* %B, i32 %C, i32 %D) {
-entry:
-  %arrayidx = getelementptr inbounds i32, i32* %B, i64 0
-  %0 = load i32, i32* %arrayidx, align 4
-  %add = add nsw i32 %0, %C
-  %arrayidx2 = getelementptr inbounds i32, i32* %A, i64 0
-
 ; Store to a different location.
-  store i32 %add, i32* %arrayidx, align 4
-  %arrayidx4 = getelementptr inbounds i32, i32* %B, i64 1
-  %1 = load i32, i32* %arrayidx4, align 4
-  %add5 = add nsw i32 %1, %D
-  %cmp6 = icmp sgt i32 %add5, %C
-  br i1 %cmp6, label %if.then, label %ret.end
 
+define void @noifconvertstore1(i32* %A1, i32* %A2, i32 %B, i32 %C, i32 %D) {
 ; CHECK-LABEL: @noifconvertstore1(
 ; CHECK-NOT: select
+;
+entry:
+  store i32 %B, i32* %A1
+  %cmp = icmp sgt i32 %D, 42
+  br i1 %cmp, label %if.then, label %ret.end
+
 if.then:
-  store i32 %add5, i32* %arrayidx2, align 4
+  store i32 %C, i32* %A2
   br label %ret.end
 
 ret.end:
   ret void
 }
 
+; This function could store to our address, so we can't repeat the first store a second time.
 declare void @unknown_fun()
 
-define void @noifconvertstore2(i32 %m, i32* %A, i32* %B, i32 %C, i32 %D) {
+define void @noifconvertstore2(i32* %A, i32 %B, i32 %C, i32 %D) {
+; CHECK-LABEL: @noifconvertstore2(
+; CHECK-NOT: select
+;
 entry:
-  %arrayidx = getelementptr inbounds i32, i32* %B, i64 0
-  %0 = load i32, i32* %arrayidx, align 4
-  %add = add nsw i32 %0, %C
-  %arrayidx2 = getelementptr inbounds i32, i32* %A, i64 0
-
 ; First store to the location.
-  store i32 %add, i32* %arrayidx2, align 4
+  store i32 %B, i32* %A
   call void @unknown_fun()
-  %arrayidx4 = getelementptr inbounds i32, i32* %B, i64 1
-  %1 = load i32, i32* %arrayidx4, align 4
-  %add5 = add nsw i32 %1, %D
-  %cmp6 = icmp sgt i32 %add5, %C
+  %cmp6 = icmp sgt i32 %D, 42
   br i1 %cmp6, label %if.then, label %ret.end
 
-; CHECK-LABEL: @noifconvertstore2(
-; CHECK-NOT: select
 if.then:
-  store i32 %add5, i32* %arrayidx2, align 4
+  store i32 %C, i32* %A
   br label %ret.end
 
 ret.end:
   ret void
 }
 
-define void @noifconvertstore_volatile(i32 %m, i32* %A, i32* %B, i32 %C, i32 %D) {
-entry:
-  %arrayidx = getelementptr inbounds i32, i32* %B, i64 0
-  %0 = load i32, i32* %arrayidx, align 4
-  %add = add nsw i32 %0, %C
-  %arrayidx2 = getelementptr inbounds i32, i32* %A, i64 0
+; Make sure we don't speculate volatile stores.
 
+define void @noifconvertstore_volatile(i32* %A, i32 %B, i32 %C, i32 %D) {
+; CHECK-LABEL: @noifconvertstore_volatile(
+; CHECK-NOT: select
+;
+entry:
 ; First store to the location.
-  store i32 %add, i32* %arrayidx2, align 4
-  %arrayidx4 = getelementptr inbounds i32, i32* %B, i64 1
-  %1 = load i32, i32* %arrayidx4, align 4
-  %add5 = add nsw i32 %1, %D
-  %cmp6 = icmp sgt i32 %add5, %C
+  store i32 %B, i32* %A
+  %cmp6 = icmp sgt i32 %D, 42
   br i1 %cmp6, label %if.then, label %ret.end
 
-; Make sure we don't speculate volatile stores.
-; CHECK-LABEL: @noifconvertstore_volatile(
-; CHECK-NOT: select
 if.then:
-  store volatile i32 %add5, i32* %arrayidx2, align 4
+  store volatile i32 %C, i32* %A
   br label %ret.end
 
 ret.end:
   ret void
 }
+




More information about the llvm-commits mailing list