summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--llvm/test/Transforms/InstCombine/bitcast-vec-canon.ll15
1 files changed, 14 insertions, 1 deletions
diff --git a/llvm/test/Transforms/InstCombine/bitcast-vec-canon.ll b/llvm/test/Transforms/InstCombine/bitcast-vec-canon.ll
index ee77e0629f4..486a78529c5 100644
--- a/llvm/test/Transforms/InstCombine/bitcast-vec-canon.ll
+++ b/llvm/test/Transforms/InstCombine/bitcast-vec-canon.ll
@@ -49,9 +49,22 @@ define x86_mmx @e(<1 x i64> %y) {
define <1 x i64> @f(x86_mmx %y) {
; CHECK-LABEL: @f(
-; CHECK-NEXT: [[C:%.*]] = bitcast x86_mmx %y to <1 x i64>
+; CHECK-NEXT: [[C:%.*]] = bitcast x86_mmx [[Y:%.*]] to <1 x i64>
; CHECK-NEXT: ret <1 x i64> [[C]]
;
%c = bitcast x86_mmx %y to <1 x i64>
ret <1 x i64> %c
}
+
+define double @g(x86_mmx %x) {
+; CHECK-LABEL: @g(
+; CHECK-NEXT: entry:
+; CHECK-NEXT: [[BC:%.*]] = bitcast x86_mmx %x to <1 x double>
+; CHECK-NEXT: [[TMP0:%.*]] = extractelement <1 x double> [[BC]], i32 0
+; CHECK-NEXT: ret double [[TMP0]]
+;
+entry:
+ %0 = bitcast x86_mmx %x to <1 x i64>
+ %1 = bitcast <1 x i64> %0 to double
+ ret double %1
+}
OpenPOWER on IntegriCloud