diff options
author | Eli Friedman <eli.friedman@gmail.com> | 2009-07-18 09:07:47 +0000 |
---|---|---|
committer | Eli Friedman <eli.friedman@gmail.com> | 2009-07-18 09:07:47 +0000 |
commit | fc21f8ff1404f26ceeee3202714cbc307d579997 (patch) | |
tree | 8cda1e6dd30545fa7532064a286b996d451d427c /test | |
parent | 62bb4134358d0d1f8b892cf0df42d758ac8e19e7 (diff) | |
download | external_llvm-fc21f8ff1404f26ceeee3202714cbc307d579997.zip external_llvm-fc21f8ff1404f26ceeee3202714cbc307d579997.tar.gz external_llvm-fc21f8ff1404f26ceeee3202714cbc307d579997.tar.bz2 |
Canonicalize insert/extractelement from single-element vectors into
bitcasts.
It would also be possible to canonicalize the other way; does anyone
have a preference?
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76300 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test')
-rw-r--r-- | test/Transforms/InstCombine/vec-single-elt.ll | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/test/Transforms/InstCombine/vec-single-elt.ll b/test/Transforms/InstCombine/vec-single-elt.ll new file mode 100644 index 0000000..45bca42 --- /dev/null +++ b/test/Transforms/InstCombine/vec-single-elt.ll @@ -0,0 +1,12 @@ +; RUN: llvm-as < %s | opt -instcombine | llvm-dis | not grep element +; insert/extractelement should canonicalize to bitcast + +define i64 @a(<1 x i64> %x) { + %r = extractelement <1 x i64> %x, i32 0 + ret i64 %r +} + +define <1 x i64> @b(i64 %x) { + %r = insertelement <1 x i64> undef, i64 %x, i32 0 + ret <1 x i64> %r +} |