summaryrefslogtreecommitdiff
path: root/test/Transforms
diff options
context:
space:
mode:
authorEli Friedman <eli.friedman@gmail.com>2009-07-18 09:07:47 +0000
committerEli Friedman <eli.friedman@gmail.com>2009-07-18 09:07:47 +0000
commitfc21f8ff1404f26ceeee3202714cbc307d579997 (patch)
tree8cda1e6dd30545fa7532064a286b996d451d427c /test/Transforms
parent62bb4134358d0d1f8b892cf0df42d758ac8e19e7 (diff)
downloadllvm-fc21f8ff1404f26ceeee3202714cbc307d579997.tar.gz
llvm-fc21f8ff1404f26ceeee3202714cbc307d579997.tar.bz2
llvm-fc21f8ff1404f26ceeee3202714cbc307d579997.tar.xz
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/Transforms')
-rw-r--r--test/Transforms/InstCombine/vec-single-elt.ll12
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 0000000000..45bca42c3e
--- /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
+}