summaryrefslogtreecommitdiffstats
path: root/llvm/test/Transforms
diff options
context:
space:
mode:
authorDuncan P. N. Exon Smith <dexonsmith@apple.com>2014-11-28 21:29:14 +0000
committerDuncan P. N. Exon Smith <dexonsmith@apple.com>2014-11-28 21:29:14 +0000
commit9bc81fbe9240ed2288952896f9ac1f4afd6d19dc (patch)
tree75c32979250cc76d303739d7083264dffc250a66 /llvm/test/Transforms
parent6c13c36ddfaf2ce990fc5505d276bddf7d3d650d (diff)
downloadbcm5719-llvm-9bc81fbe9240ed2288952896f9ac1f4afd6d19dc.tar.gz
bcm5719-llvm-9bc81fbe9240ed2288952896f9ac1f4afd6d19dc.zip
Revert "Masked Vector Load and Store Intrinsics."
This reverts commit r222632 (and follow-up r222636), which caused a host of LNT failures on an internal bot. I'll respond to the commit on the list with a reproduction of one of the failures. Conflicts: lib/Target/X86/X86TargetTransformInfo.cpp llvm-svn: 222936
Diffstat (limited to 'llvm/test/Transforms')
-rw-r--r--llvm/test/Transforms/LoopVectorize/X86/mask1.ll83
-rw-r--r--llvm/test/Transforms/LoopVectorize/X86/mask2.ll84
-rw-r--r--llvm/test/Transforms/LoopVectorize/X86/mask3.ll84
-rw-r--r--llvm/test/Transforms/LoopVectorize/X86/mask4.ll83
4 files changed, 0 insertions, 334 deletions
diff --git a/llvm/test/Transforms/LoopVectorize/X86/mask1.ll b/llvm/test/Transforms/LoopVectorize/X86/mask1.ll
deleted file mode 100644
index 1721955a869..00000000000
--- a/llvm/test/Transforms/LoopVectorize/X86/mask1.ll
+++ /dev/null
@@ -1,83 +0,0 @@
-; RUN: opt < %s -O3 -mcpu=corei7-avx -S | FileCheck %s -check-prefix=AVX1
-; RUN: opt < %s -O3 -mcpu=core-avx2 -S | FileCheck %s -check-prefix=AVX2
-; RUN: opt < %s -O3 -mcpu=knl -S | FileCheck %s -check-prefix=AVX512
-
-target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
-target triple = "x86_64-pc_linux"
-
-; The source code:
-;
-;void foo(int *A, int *B, int *trigger) {
-;
-; for (int i=0; i<10000; i++) {
-; if (trigger[i] < 100) {
-; A[i] = B[i] + trigger[i];
-; }
-; }
-;}
-
-
-;AVX2: llvm.masked.load.v8i32
-;AVX2: llvm.masked.store.v8i32
-;AVX512: llvm.masked.load.v16i32
-;AVX512: llvm.masked.store.v16i32
-;AVX1-NOT: llvm.masked
-
-; Function Attrs: nounwind uwtable
-define void @foo(i32* %A, i32* %B, i32* %trigger) {
-entry:
- %A.addr = alloca i32*, align 8
- %B.addr = alloca i32*, align 8
- %trigger.addr = alloca i32*, align 8
- %i = alloca i32, align 4
- store i32* %A, i32** %A.addr, align 8
- store i32* %B, i32** %B.addr, align 8
- store i32* %trigger, i32** %trigger.addr, align 8
- store i32 0, i32* %i, align 4
- br label %for.cond
-
-for.cond: ; preds = %for.inc, %entry
- %0 = load i32* %i, align 4
- %cmp = icmp slt i32 %0, 10000
- br i1 %cmp, label %for.body, label %for.end
-
-for.body: ; preds = %for.cond
- %1 = load i32* %i, align 4
- %idxprom = sext i32 %1 to i64
- %2 = load i32** %trigger.addr, align 8
- %arrayidx = getelementptr inbounds i32* %2, i64 %idxprom
- %3 = load i32* %arrayidx, align 4
- %cmp1 = icmp slt i32 %3, 100
- br i1 %cmp1, label %if.then, label %if.end
-
-if.then: ; preds = %for.body
- %4 = load i32* %i, align 4
- %idxprom2 = sext i32 %4 to i64
- %5 = load i32** %B.addr, align 8
- %arrayidx3 = getelementptr inbounds i32* %5, i64 %idxprom2
- %6 = load i32* %arrayidx3, align 4
- %7 = load i32* %i, align 4
- %idxprom4 = sext i32 %7 to i64
- %8 = load i32** %trigger.addr, align 8
- %arrayidx5 = getelementptr inbounds i32* %8, i64 %idxprom4
- %9 = load i32* %arrayidx5, align 4
- %add = add nsw i32 %6, %9
- %10 = load i32* %i, align 4
- %idxprom6 = sext i32 %10 to i64
- %11 = load i32** %A.addr, align 8
- %arrayidx7 = getelementptr inbounds i32* %11, i64 %idxprom6
- store i32 %add, i32* %arrayidx7, align 4
- br label %if.end
-
-if.end: ; preds = %if.then, %for.body
- br label %for.inc
-
-for.inc: ; preds = %if.end
- %12 = load i32* %i, align 4
- %inc = add nsw i32 %12, 1
- store i32 %inc, i32* %i, align 4
- br label %for.cond
-
-for.end: ; preds = %for.cond
- ret void
-}
diff --git a/llvm/test/Transforms/LoopVectorize/X86/mask2.ll b/llvm/test/Transforms/LoopVectorize/X86/mask2.ll
deleted file mode 100644
index 929c88dbe7b..00000000000
--- a/llvm/test/Transforms/LoopVectorize/X86/mask2.ll
+++ /dev/null
@@ -1,84 +0,0 @@
-; RUN: opt < %s -O3 -mcpu=corei7-avx -S | FileCheck %s -check-prefix=AVX1
-; RUN: opt < %s -O3 -mcpu=core-avx2 -S | FileCheck %s -check-prefix=AVX2
-; RUN: opt < %s -O3 -mcpu=knl -S | FileCheck %s -check-prefix=AVX512
-
-target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
-target triple = "x86_64-pc_linux"
-
-; The source code:
-;
-;void foo(float *A, float *B, int *trigger) {
-;
-; for (int i=0; i<10000; i++) {
-; if (trigger[i] < 100) {
-; A[i] = B[i] + trigger[i];
-; }
-; }
-;}
-
-
-;AVX2: llvm.masked.load.v8f32
-;AVX2: llvm.masked.store.v8f32
-;AVX512: llvm.masked.load.v16f32
-;AVX512: llvm.masked.store.v16f32
-;AVX1-NOT: llvm.masked
-
-; Function Attrs: nounwind uwtable
-define void @foo(float* %A, float* %B, i32* %trigger) {
-entry:
- %A.addr = alloca float*, align 8
- %B.addr = alloca float*, align 8
- %trigger.addr = alloca i32*, align 8
- %i = alloca i32, align 4
- store float* %A, float** %A.addr, align 8
- store float* %B, float** %B.addr, align 8
- store i32* %trigger, i32** %trigger.addr, align 8
- store i32 0, i32* %i, align 4
- br label %for.cond
-
-for.cond: ; preds = %for.inc, %entry
- %0 = load i32* %i, align 4
- %cmp = icmp slt i32 %0, 10000
- br i1 %cmp, label %for.body, label %for.end
-
-for.body: ; preds = %for.cond
- %1 = load i32* %i, align 4
- %idxprom = sext i32 %1 to i64
- %2 = load i32** %trigger.addr, align 8
- %arrayidx = getelementptr inbounds i32* %2, i64 %idxprom
- %3 = load i32* %arrayidx, align 4
- %cmp1 = icmp slt i32 %3, 100
- br i1 %cmp1, label %if.then, label %if.end
-
-if.then: ; preds = %for.body
- %4 = load i32* %i, align 4
- %idxprom2 = sext i32 %4 to i64
- %5 = load float** %B.addr, align 8
- %arrayidx3 = getelementptr inbounds float* %5, i64 %idxprom2
- %6 = load float* %arrayidx3, align 4
- %7 = load i32* %i, align 4
- %idxprom4 = sext i32 %7 to i64
- %8 = load i32** %trigger.addr, align 8
- %arrayidx5 = getelementptr inbounds i32* %8, i64 %idxprom4
- %9 = load i32* %arrayidx5, align 4
- %conv = sitofp i32 %9 to float
- %add = fadd float %6, %conv
- %10 = load i32* %i, align 4
- %idxprom6 = sext i32 %10 to i64
- %11 = load float** %A.addr, align 8
- %arrayidx7 = getelementptr inbounds float* %11, i64 %idxprom6
- store float %add, float* %arrayidx7, align 4
- br label %if.end
-
-if.end: ; preds = %if.then, %for.body
- br label %for.inc
-
-for.inc: ; preds = %if.end
- %12 = load i32* %i, align 4
- %inc = add nsw i32 %12, 1
- store i32 %inc, i32* %i, align 4
- br label %for.cond
-
-for.end: ; preds = %for.cond
- ret void
-}
diff --git a/llvm/test/Transforms/LoopVectorize/X86/mask3.ll b/llvm/test/Transforms/LoopVectorize/X86/mask3.ll
deleted file mode 100644
index 9fb554ef127..00000000000
--- a/llvm/test/Transforms/LoopVectorize/X86/mask3.ll
+++ /dev/null
@@ -1,84 +0,0 @@
-; RUN: opt < %s -O3 -mcpu=corei7-avx -S | FileCheck %s -check-prefix=AVX1
-; RUN: opt < %s -O3 -mcpu=core-avx2 -S | FileCheck %s -check-prefix=AVX2
-; RUN: opt < %s -O3 -mcpu=knl -S | FileCheck %s -check-prefix=AVX512
-
-target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
-target triple = "x86_64-pc_linux"
-
-; The source code:
-;
-;void foo(double *A, double *B, int *trigger) {
-;
-; for (int i=0; i<10000; i++) {
-; if (trigger[i] < 100) {
-; A[i] = B[i] + trigger[i];
-; }
-; }
-;}
-
-
-;AVX2: llvm.masked.load.v4f64
-;AVX2: llvm.masked.store.v4f64
-;AVX512: llvm.masked.load.v8f64
-;AVX512: llvm.masked.store.v8f64
-;AVX1-NOT: llvm.masked
-
-; Function Attrs: nounwind uwtable
-define void @foo(double* %A, double* %B, i32* %trigger) #0 {
-entry:
- %A.addr = alloca double*, align 8
- %B.addr = alloca double*, align 8
- %trigger.addr = alloca i32*, align 8
- %i = alloca i32, align 4
- store double* %A, double** %A.addr, align 8
- store double* %B, double** %B.addr, align 8
- store i32* %trigger, i32** %trigger.addr, align 8
- store i32 0, i32* %i, align 4
- br label %for.cond
-
-for.cond: ; preds = %for.inc, %entry
- %0 = load i32* %i, align 4
- %cmp = icmp slt i32 %0, 10000
- br i1 %cmp, label %for.body, label %for.end
-
-for.body: ; preds = %for.cond
- %1 = load i32* %i, align 4
- %idxprom = sext i32 %1 to i64
- %2 = load i32** %trigger.addr, align 8
- %arrayidx = getelementptr inbounds i32* %2, i64 %idxprom
- %3 = load i32* %arrayidx, align 4
- %cmp1 = icmp slt i32 %3, 100
- br i1 %cmp1, label %if.then, label %if.end
-
-if.then: ; preds = %for.body
- %4 = load i32* %i, align 4
- %idxprom2 = sext i32 %4 to i64
- %5 = load double** %B.addr, align 8
- %arrayidx3 = getelementptr inbounds double* %5, i64 %idxprom2
- %6 = load double* %arrayidx3, align 8
- %7 = load i32* %i, align 4
- %idxprom4 = sext i32 %7 to i64
- %8 = load i32** %trigger.addr, align 8
- %arrayidx5 = getelementptr inbounds i32* %8, i64 %idxprom4
- %9 = load i32* %arrayidx5, align 4
- %conv = sitofp i32 %9 to double
- %add = fadd double %6, %conv
- %10 = load i32* %i, align 4
- %idxprom6 = sext i32 %10 to i64
- %11 = load double** %A.addr, align 8
- %arrayidx7 = getelementptr inbounds double* %11, i64 %idxprom6
- store double %add, double* %arrayidx7, align 8
- br label %if.end
-
-if.end: ; preds = %if.then, %for.body
- br label %for.inc
-
-for.inc: ; preds = %if.end
- %12 = load i32* %i, align 4
- %inc = add nsw i32 %12, 1
- store i32 %inc, i32* %i, align 4
- br label %for.cond
-
-for.end: ; preds = %for.cond
- ret void
-}
diff --git a/llvm/test/Transforms/LoopVectorize/X86/mask4.ll b/llvm/test/Transforms/LoopVectorize/X86/mask4.ll
deleted file mode 100644
index 5cc71f8f6aa..00000000000
--- a/llvm/test/Transforms/LoopVectorize/X86/mask4.ll
+++ /dev/null
@@ -1,83 +0,0 @@
-; RUN: opt < %s -O3 -mcpu=corei7-avx -S | FileCheck %s -check-prefix=AVX1
-; RUN: opt < %s -O3 -mcpu=core-avx2 -S | FileCheck %s -check-prefix=AVX2
-; RUN: opt < %s -O3 -mcpu=knl -S | FileCheck %s -check-prefix=AVX512
-
-target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
-target triple = "x86_64-pc_linux"
-
-; The source code:
-;
-;void foo(double *A, double *B, int *trigger) {
-;
-; for (int i=0; i<10000; i++) {
-; if (trigger[i] < 100) {
-; A[i] = B[i*2] + trigger[i]; << non-cosecutive access
-; }
-; }
-;}
-
-
-;AVX2-NOT: llvm.masked
-;AVX512-NOT: llvm.masked
-;AVX1-NOT: llvm.masked
-
-; Function Attrs: nounwind uwtable
-define void @foo(double* %A, double* %B, i32* %trigger) {
-entry:
- %A.addr = alloca double*, align 8
- %B.addr = alloca double*, align 8
- %trigger.addr = alloca i32*, align 8
- %i = alloca i32, align 4
- store double* %A, double** %A.addr, align 8
- store double* %B, double** %B.addr, align 8
- store i32* %trigger, i32** %trigger.addr, align 8
- store i32 0, i32* %i, align 4
- br label %for.cond
-
-for.cond: ; preds = %for.inc, %entry
- %0 = load i32* %i, align 4
- %cmp = icmp slt i32 %0, 10000
- br i1 %cmp, label %for.body, label %for.end
-
-for.body: ; preds = %for.cond
- %1 = load i32* %i, align 4
- %idxprom = sext i32 %1 to i64
- %2 = load i32** %trigger.addr, align 8
- %arrayidx = getelementptr inbounds i32* %2, i64 %idxprom
- %3 = load i32* %arrayidx, align 4
- %cmp1 = icmp slt i32 %3, 100
- br i1 %cmp1, label %if.then, label %if.end
-
-if.then: ; preds = %for.body
- %4 = load i32* %i, align 4
- %mul = mul nsw i32 %4, 2
- %idxprom2 = sext i32 %mul to i64
- %5 = load double** %B.addr, align 8
- %arrayidx3 = getelementptr inbounds double* %5, i64 %idxprom2
- %6 = load double* %arrayidx3, align 8
- %7 = load i32* %i, align 4
- %idxprom4 = sext i32 %7 to i64
- %8 = load i32** %trigger.addr, align 8
- %arrayidx5 = getelementptr inbounds i32* %8, i64 %idxprom4
- %9 = load i32* %arrayidx5, align 4
- %conv = sitofp i32 %9 to double
- %add = fadd double %6, %conv
- %10 = load i32* %i, align 4
- %idxprom6 = sext i32 %10 to i64
- %11 = load double** %A.addr, align 8
- %arrayidx7 = getelementptr inbounds double* %11, i64 %idxprom6
- store double %add, double* %arrayidx7, align 8
- br label %if.end
-
-if.end: ; preds = %if.then, %for.body
- br label %for.inc
-
-for.inc: ; preds = %if.end
- %12 = load i32* %i, align 4
- %inc = add nsw i32 %12, 1
- store i32 %inc, i32* %i, align 4
- br label %for.cond
-
-for.end: ; preds = %for.cond
- ret void
-}
OpenPOWER on IntegriCloud