Skip to content

Commit 13aae75

Browse files
committed
Precommit tests.
1 parent 4bcc414 commit 13aae75

File tree

1 file changed

+30
-0
lines changed

1 file changed

+30
-0
lines changed

llvm/test/Transforms/InstCombine/bitcast.ll

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -480,6 +480,36 @@ define double @bitcast_extelt8(<1 x i64> %A) {
480480
ret double %bc
481481
}
482482

483+
; Extract a subvector from a vector, extracted element wider than source.
484+
485+
define <2 x i64> @bitcast_extelt9(<8 x i32> %A) {
486+
; CHECK-LABEL: @bitcast_extelt9(
487+
; CHECK-NEXT: [[BC1:%.*]] = bitcast <8 x i32> [[A:%.*]] to <2 x i128>
488+
; CHECK-NEXT: [[EXT:%.*]] = extractelement <2 x i128> [[BC1]], i64 1
489+
; CHECK-NEXT: [[BC2:%.*]] = bitcast i128 [[EXT]] to <2 x i64>
490+
; CHECK-NEXT: ret <2 x i64> [[BC2]]
491+
;
492+
%bc1 = bitcast <8 x i32> %A to <2 x i128>
493+
%ext = extractelement <2 x i128> %bc1, i64 1
494+
%bc2 = bitcast i128 %ext to <2 x i64>
495+
ret <2 x i64> %bc2
496+
}
497+
498+
; Extract a subvector from a vector, extracted element narrower than source.
499+
500+
define <2 x i8> @bitcast_extelt10(<8 x i32> %A) {
501+
; CHECK-LABEL: @bitcast_extelt10(
502+
; CHECK-NEXT: [[BC1:%.*]] = bitcast <8 x i32> [[A:%.*]] to <16 x i16>
503+
; CHECK-NEXT: [[EXT:%.*]] = extractelement <16 x i16> [[BC1]], i64 3
504+
; CHECK-NEXT: [[BC2:%.*]] = bitcast i16 [[EXT]] to <2 x i8>
505+
; CHECK-NEXT: ret <2 x i8> [[BC2]]
506+
;
507+
%bc1 = bitcast <8 x i32> %A to <16 x i16>
508+
%ext = extractelement <16 x i16> %bc1, i64 3
509+
%bc2 = bitcast i16 %ext to <2 x i8>
510+
ret <2 x i8> %bc2
511+
}
512+
483513
define <2 x i32> @test4(i32 %A, i32 %B){
484514
; CHECK-LABEL: @test4(
485515
; CHECK-NEXT: [[TMP1:%.*]] = insertelement <2 x i32> poison, i32 [[A:%.*]], i64 0

0 commit comments

Comments
 (0)