Revert "[InstCombine] fold bitcasts around an extractelement"
[oota-llvm.git] / test / Transforms / InstCombine / bitcast.ll
index 132147f65321661a6425177597c1f4413ef46743..2a8194e53032af3e17b8ec5c8f605e75064f5ade 100644 (file)
@@ -64,7 +64,7 @@ define float @test3(<2 x float> %A, <2 x i64> %B) {
 ; CHECK-NEXT:  ret float %add
 }
 
-; Both bitcasts are unnecessary; change the extractelement.
+; TODO: Both bitcasts are unnecessary; change the extractelement.
 
 define float @bitcast_extelt1(<2 x float> %A) {
   %bc1 = bitcast <2 x float> %A to <2 x i32>
@@ -73,11 +73,13 @@ define float @bitcast_extelt1(<2 x float> %A) {
   ret float %bc2
 
 ; CHECK-LABEL: @bitcast_extelt1(
-; CHECK-NEXT:  %bc2 = extractelement <2 x float> %A, i32 0
+; CHECK-NEXT:  %bc1 = bitcast <2 x float> %A to <2 x i32>
+; CHECK-NEXT:  %ext = extractelement <2 x i32> %bc1, i32 0
+; CHECK-NEXT:  %bc2 = bitcast i32 %ext to float
 ; CHECK-NEXT:  ret float %bc2
 }
 
-; Second bitcast can be folded into the first.
+; TODO: Second bitcast can be folded into the first.
 
 define i64 @bitcast_extelt2(<4 x float> %A) {
   %bc1 = bitcast <4 x float> %A to <2 x double>
@@ -86,8 +88,9 @@ define i64 @bitcast_extelt2(<4 x float> %A) {
   ret i64 %bc2
 
 ; CHECK-LABEL: @bitcast_extelt2(
-; CHECK-NEXT:  %bc = bitcast <4 x float> %A to <2 x i64>
-; CHECK-NEXT:  %bc2 = extractelement <2 x i64> %bc, i32 1
+; CHECK-NEXT:  %bc1 = bitcast <4 x float> %A to <2 x double>
+; CHECK-NEXT:  %ext = extractelement <2 x double> %bc1, i32 1
+; CHECK-NEXT:  %bc2 = bitcast double %ext to i64
 ; CHECK-NEXT:  ret i64 %bc2
 }