diff options
author | Kalle Raiskila <kalle.raiskila@nokia.com> | 2010-11-22 16:28:26 +0000 |
---|---|---|
committer | Kalle Raiskila <kalle.raiskila@nokia.com> | 2010-11-22 16:28:26 +0000 |
commit | 77d11d054cd89046fa9d1b1182af10c9cc107807 (patch) | |
tree | 1b80810afa5bc9f7220440c7ddb2ca81f46351c8 /llvm/test | |
parent | 3c227b0b89bf5055023546db2c0fc61e4e63c049 (diff) | |
download | bcm5719-llvm-77d11d054cd89046fa9d1b1182af10c9cc107807.tar.gz bcm5719-llvm-77d11d054cd89046fa9d1b1182af10c9cc107807.zip |
Fix a bug with extractelement on SPU.
In the attached testcase, the element was
never extracted (missing rotate).
llvm-svn: 119973
Diffstat (limited to 'llvm/test')
-rw-r--r-- | llvm/test/CodeGen/CellSPU/rotate_ops.ll | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/llvm/test/CodeGen/CellSPU/rotate_ops.ll b/llvm/test/CodeGen/CellSPU/rotate_ops.ll index a504c002ae1..e1172089c70 100644 --- a/llvm/test/CodeGen/CellSPU/rotate_ops.ll +++ b/llvm/test/CodeGen/CellSPU/rotate_ops.ll @@ -1,5 +1,5 @@ ; RUN: llc < %s -march=cellspu -o %t1.s -; RUN: grep rot %t1.s | count 85 +; RUN: grep rot %t1.s | count 86 ; RUN: grep roth %t1.s | count 8 ; RUN: grep roti.*5 %t1.s | count 1 ; RUN: grep roti.*27 %t1.s | count 1 @@ -8,6 +8,7 @@ ; RUN grep rothi.*,.3 %t1.s | count 1 ; RUN: grep andhi %t1.s | count 4 ; RUN: grep shlhi %t1.s | count 4 +; RUN: cat %t1.s | FileCheck %s target datalayout = "E-p:32:32:128-f64:64:128-f32:32:128-i64:32:128-i32:32:128-i16:16:128-i8:8:128-i1:8:128-a0:0:128-v128:128:128-s0:128:128" target triple = "spu" @@ -158,3 +159,14 @@ define i8 @rotri8(i8 %A) { %D = or i8 %B, %C ; <i8> [#uses=1] ret i8 %D } + +define <2 x float> @test1(<4 x float> %param ) +{ +; CHECK: test1 +; CHECK: rotqbyi + %el = extractelement <4 x float> %param, i32 1 + %vec1 = insertelement <1 x float> undef, float %el, i32 0 + %rv = shufflevector <1 x float> %vec1, <1 x float> undef, <2 x i32><i32 0,i32 0> +; CHECK: bi $lr + ret <2 x float> %rv +} |