Skip to content

Commit 278dbd1

Browse files
committed
add a test for bitcast <4 x double> %inv to <8 x i32>
1 parent 5143403 commit 278dbd1

File tree

1 file changed

+17
-0
lines changed
  • llvm/test/Transforms/LowerMatrixIntrinsics

1 file changed

+17
-0
lines changed

llvm/test/Transforms/LowerMatrixIntrinsics/unary.ll

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -199,6 +199,23 @@ define void @bitcast_2x2_v4f64_to_v4i64(ptr %in, ptr %out) {
199199
ret void
200200
}
201201

202+
define void @bitcast_2x2_v4f64_to_v8i32(ptr %in, ptr %out) {
203+
; CHECK-LABEL: @bitcast_2x2_v4f64_to_v8i32(
204+
; CHECK-NEXT: [[INV:%.*]] = load <4 x double>, ptr [[IN:%.*]], align 32
205+
; CHECK-NEXT: [[OP:%.*]] = bitcast <4 x double> [[INV]] to <8 x i32>
206+
; CHECK-NEXT: [[SPLIT:%.*]] = shufflevector <8 x i32> [[OP]], <8 x i32> poison, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
207+
; CHECK-NEXT: [[SPLIT1:%.*]] = shufflevector <8 x i32> [[OP]], <8 x i32> poison, <4 x i32> <i32 4, i32 5, i32 6, i32 7>
208+
; CHECK-NEXT: store <4 x i32> [[SPLIT]], ptr [[OUT:%.*]], align 4
209+
; CHECK-NEXT: [[VEC_GEP:%.*]] = getelementptr i32, ptr [[OUT]], i64 4
210+
; CHECK-NEXT: store <4 x i32> [[SPLIT1]], ptr [[VEC_GEP]], align 4
211+
; CHECK-NEXT: ret void
212+
;
213+
%inv = load <4 x double>, ptr %in
214+
%op = bitcast <4 x double> %inv to <8 x i32>
215+
call void @llvm.matrix.column.major.store(<8 x i32> %op, ptr %out, i64 4, i1 false, i32 4, i32 2)
216+
ret void
217+
}
218+
202219
define void @bitcast_2x2_i256_to_v4i64(ptr %in, ptr %out) {
203220
; CHECK-LABEL: @bitcast_2x2_i256_to_v4i64(
204221
; CHECK-NEXT: [[INV:%.*]] = load i256, ptr [[IN:%.*]], align 4

0 commit comments

Comments
 (0)