diff options
| author | Anat Shemer <anat.shemer@intel.com> | 2013-04-22 20:51:10 +0000 |
|---|---|---|
| committer | Anat Shemer <anat.shemer@intel.com> | 2013-04-22 20:51:10 +0000 |
| commit | 10260a75e3b06ae938689c174ff99fa7c3a27ce0 (patch) | |
| tree | c1c2c3dabd3673e57abad0c80087dbe2a327cf43 /llvm/test | |
| parent | eeb003491811f3bf08e1a8a625cb6adc5f6fdfc7 (diff) | |
| download | bcm5719-llvm-10260a75e3b06ae938689c174ff99fa7c3a27ce0.tar.gz bcm5719-llvm-10260a75e3b06ae938689c174ff99fa7c3a27ce0.zip | |
Changed back (relative to commit 179786) the operations executed when extract(cast) is transformed to cast(extract). It uses the Builder class as before. In addition the result node is added to the Worklist, so all the previous extract users will become the new scalar cast users.
llvm-svn: 180045
Diffstat (limited to 'llvm/test')
| -rw-r--r-- | llvm/test/Transforms/InstCombine/vec_extract_var_elt.ll | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/llvm/test/Transforms/InstCombine/vec_extract_var_elt.ll b/llvm/test/Transforms/InstCombine/vec_extract_var_elt.ll new file mode 100644 index 00000000000..3c982873e28 --- /dev/null +++ b/llvm/test/Transforms/InstCombine/vec_extract_var_elt.ll @@ -0,0 +1,18 @@ +; RUN: opt < %s -instcombine -S | FileCheck %s + +define void @test (float %b, <8 x float> * %p) { +; CHECK: extractelement +; CHECK: fptosi + %1 = load <8 x float> * %p + %2 = bitcast <8 x float> %1 to <8 x i32> + %3 = bitcast <8 x i32> %2 to <8 x float> + %a = fptosi <8 x float> %3 to <8 x i32> + %4 = fptosi float %b to i32 + %5 = add i32 %4, -2 + %6 = extractelement <8 x i32> %a, i32 %5 + %7 = insertelement <8 x i32> undef, i32 %6, i32 7 + %8 = sitofp <8 x i32> %7 to <8 x float> + store <8 x float> %8, <8 x float>* %p + ret void +} + |

