@@ -530,22 +530,22 @@ func.func @extract_scalar_from_vec_0d_index(%arg0: vector<index>) -> index {
530
530
531
531
// -----
532
532
533
- func.func @extract_scalar_from_vec_2d_f32_dynamic_idxs_compile_time_const (%arg : vector <32 x 1 x i32 >) -> i32 {
533
+ func.func @extract_scalar_from_vec_2d_f32_dynamic_idxs_compile_time_const (%arg : vector <32 x 1 x f32 >) -> f32 {
534
534
%0 = arith.constant 0 : index
535
- %1 = vector.extract %arg [%0 , %0 ] : i32 from vector <32 x 1 x i32 >
536
- return %1 : i32
535
+ %1 = vector.extract %arg [%0 , %0 ] : f32 from vector <32 x 1 x f32 >
536
+ return %1 : f32
537
537
}
538
538
539
539
// At compile time, since the indices of extractOp are constants,
540
540
// they will be collapsed and folded away; therefore, the lowering works.
541
541
542
542
// CHECK-LABEL: @extract_scalar_from_vec_2d_f32_dynamic_idxs_compile_time_const
543
- // CHECK-SAME: %[[ARG:.*]]: vector<32x1xi32 >) -> i32 {
544
- // CHECK: %[[CAST:.*]] = builtin.unrealized_conversion_cast %[[ARG]] : vector<32x1xi32 > to !llvm.array<32 x vector<1xi32 >>
545
- // CHECK: %[[VEC_0:.*]] = llvm.extractvalue %[[CAST]][0] : !llvm.array<32 x vector<1xi32 >>
543
+ // CHECK-SAME: %[[ARG:.*]]: vector<32x1xf32 >) -> f32 {
544
+ // CHECK: %[[CAST:.*]] = builtin.unrealized_conversion_cast %[[ARG]] : vector<32x1xf32 > to !llvm.array<32 x vector<1xf32 >>
545
+ // CHECK: %[[VEC_0:.*]] = llvm.extractvalue %[[CAST]][0] : !llvm.array<32 x vector<1xf32 >>
546
546
// CHECK: %[[C0:.*]] = llvm.mlir.constant(0 : i64) : i64
547
- // CHECK: %[[RES:.*]] = llvm.extractelement %[[VEC_0]]{{\[}}%[[C0]] : i64] : vector<1xi32 >
548
- // CHECK: return %[[RES]] : i32
547
+ // CHECK: %[[RES:.*]] = llvm.extractelement %[[VEC_0]]{{\[}}%[[C0]] : i64] : vector<1xf32 >
548
+ // CHECK: return %[[RES]] : f32
549
549
550
550
// -----
551
551
@@ -800,26 +800,26 @@ func.func @insert_scalar_into_vec_2d_f32_dynamic_idx_scalable(%arg0: vector<1x[1
800
800
801
801
// -----
802
802
803
- func.func @insert_scalar_from_vec_2d_f32_dynamic_idxs_compile_time_const (%arg : vector <4 x 1 x i32 >) -> vector <4 x 1 x i32 > {
803
+ func.func @insert_scalar_from_vec_2d_f32_dynamic_idxs_compile_time_const (%arg : vector <4 x 1 x f32 >) -> vector <4 x 1 x f32 > {
804
804
%0 = arith.constant 0 : index
805
- %1 = arith.constant 1 : i32
806
- %res = vector.insert %1 , %arg [%0 , %0 ] : i32 into vector <4 x 1 x i32 >
807
- return %res : vector <4 x 1 x i32 >
805
+ %1 = arith.constant 1.0 : f32
806
+ %res = vector.insert %1 , %arg [%0 , %0 ] : f32 into vector <4 x 1 x f32 >
807
+ return %res : vector <4 x 1 x f32 >
808
808
}
809
809
810
810
// At compile time, since the indices of insertOp are constants,
811
811
// they will be collapsed and folded away; therefore, the lowering works.
812
812
813
813
// CHECK-LABEL: @insert_scalar_from_vec_2d_f32_dynamic_idxs_compile_time_const
814
- // CHECK-SAME: %[[ARG:.*]]: vector<4x1xi32 >) -> vector<4x1xi32 > {
815
- // CHECK: %[[CAST:.*]] = builtin.unrealized_conversion_cast %[[ARG]] : vector<4x1xi32 > to !llvm.array<4 x vector<1xi32 >>
816
- // CHECK: %[[C1:.*]] = arith.constant 1 : i32
817
- // CHECK: %[[VEC_0:.*]] = llvm.extractvalue %[[CAST]][0] : !llvm.array<4 x vector<1xi32 >>
814
+ // CHECK-SAME: %[[ARG:.*]]: vector<4x1xf32 >) -> vector<4x1xf32 > {
815
+ // CHECK: %[[CAST:.*]] = builtin.unrealized_conversion_cast %[[ARG]] : vector<4x1xf32 > to !llvm.array<4 x vector<1xf32 >>
816
+ // CHECK: %[[C1:.*]] = arith.constant 1.000000e+00 : f32
817
+ // CHECK: %[[VEC_0:.*]] = llvm.extractvalue %[[CAST]][0] : !llvm.array<4 x vector<1xf32 >>
818
818
// CHECK: %[[C0:.*]] = llvm.mlir.constant(0 : i64) : i64
819
- // CHECK: %[[VEC_1:.*]] = llvm.insertelement %[[C1]], %[[VEC_0]]{{\[}}%[[C0]] : i64] : vector<1xi32 >
820
- // CHECK: %[[VEC_2:.*]] = llvm.insertvalue %[[VEC_1]], %[[CAST]][0] : !llvm.array<4 x vector<1xi32 >>
821
- // CHECK: %[[RES:.*]] = builtin.unrealized_conversion_cast %[[VEC_2]] : !llvm.array<4 x vector<1xi32 >> to vector<4x1xi32 >
822
- // CHECK: return %[[RES]] : vector<4x1xi32 >
819
+ // CHECK: %[[VEC_1:.*]] = llvm.insertelement %[[C1]], %[[VEC_0]]{{\[}}%[[C0]] : i64] : vector<1xf32 >
820
+ // CHECK: %[[VEC_2:.*]] = llvm.insertvalue %[[VEC_1]], %[[CAST]][0] : !llvm.array<4 x vector<1xf32 >>
821
+ // CHECK: %[[RES:.*]] = builtin.unrealized_conversion_cast %[[VEC_2]] : !llvm.array<4 x vector<1xf32 >> to vector<4x1xf32 >
822
+ // CHECK: return %[[RES]] : vector<4x1xf32 >
823
823
824
824
// -----
825
825
0 commit comments