@@ -2685,61 +2685,77 @@ func.func @matrix_ops_index(%A: vector<64xindex>, %B: vector<48xindex>) -> vecto
2685
2685
2686
2686
// -----
2687
2687
2688
- func.func @genbool_0d_f () -> vector <i1 > {
2688
+ func.func @constant_mask_0d_f () -> vector <i1 > {
2689
2689
%0 = vector.constant_mask [0 ] : vector <i1 >
2690
2690
return %0 : vector <i1 >
2691
2691
}
2692
- // CHECK-LABEL: func @genbool_0d_f
2692
+ // CHECK-LABEL: func @constant_mask_0d_f
2693
2693
// CHECK: %[[VAL_0:.*]] = arith.constant dense<false> : vector<i1>
2694
2694
// CHECK: return %[[VAL_0]] : vector<i1>
2695
2695
2696
2696
// -----
2697
2697
2698
- func.func @genbool_0d_t () -> vector <i1 > {
2698
+ func.func @constant_mask_0d_t () -> vector <i1 > {
2699
2699
%0 = vector.constant_mask [1 ] : vector <i1 >
2700
2700
return %0 : vector <i1 >
2701
2701
}
2702
- // CHECK-LABEL: func @genbool_0d_t
2702
+ // CHECK-LABEL: func @constant_mask_0d_t
2703
2703
// CHECK: %[[VAL_0:.*]] = arith.constant dense<true> : vector<i1>
2704
2704
// CHECK: return %[[VAL_0]] : vector<i1>
2705
2705
2706
2706
// -----
2707
2707
2708
- func.func @genbool_1d () -> vector <8 xi1 > {
2708
+ func.func @constant_mask_1d () -> vector <8 xi1 > {
2709
2709
%0 = vector.constant_mask [4 ] : vector <8 xi1 >
2710
2710
return %0 : vector <8 xi1 >
2711
2711
}
2712
- // CHECK-LABEL: func @genbool_1d
2712
+ // CHECK-LABEL: func @constant_mask_1d
2713
2713
// CHECK: %[[VAL_0:.*]] = arith.constant dense<[true, true, true, true, false, false, false, false]> : vector<8xi1>
2714
2714
// CHECK: return %[[VAL_0]] : vector<8xi1>
2715
2715
2716
2716
// -----
2717
2717
2718
- func.func @genbool_1d_scalable_all_false () -> vector <[8 ]xi1 > {
2718
+ func.func @constant_mask_1d_scalable_all_false () -> vector <[8 ]xi1 > {
2719
2719
%0 = vector.constant_mask [0 ] : vector <[8 ]xi1 >
2720
2720
return %0 : vector <[8 ]xi1 >
2721
2721
}
2722
- // CHECK-LABEL: func @genbool_1d_scalable_all_false
2722
+ // CHECK-LABEL: func @constant_mask_1d_scalable_all_false
2723
2723
// CHECK: %[[VAL_0:.*]] = arith.constant dense<false> : vector<[8]xi1>
2724
2724
// CHECK: return %[[VAL_0]] : vector<[8]xi1>
2725
2725
2726
2726
// -----
2727
2727
2728
- func.func @genbool_1d_scalable_all_true () -> vector <[8 ]xi1 > {
2728
+ func.func @constant_mask_1d_scalable_all_true () -> vector <[8 ]xi1 > {
2729
2729
%0 = vector.constant_mask [8 ] : vector <[8 ]xi1 >
2730
2730
return %0 : vector <[8 ]xi1 >
2731
2731
}
2732
- // CHECK-LABEL: func @genbool_1d_scalable_all_true
2732
+ // CHECK-LABEL: func @constant_mask_1d_scalable_all_true
2733
2733
// CHECK: %[[VAL_0:.*]] = arith.constant dense<true> : vector<[8]xi1>
2734
2734
// CHECK: return %[[VAL_0]] : vector<[8]xi1>
2735
2735
2736
2736
// -----
2737
2737
2738
- func.func @genbool_2d_trailing_scalable () -> vector <4 x[4 ]xi1 > {
2738
+ func.func @constant_mask_2d () -> vector <4 x4 xi1 > {
2739
+ %v = vector.constant_mask [2 , 2 ] : vector <4 x4 xi1 >
2740
+ return %v: vector <4 x4 xi1 >
2741
+ }
2742
+
2743
+ // CHECK-LABEL: func @constant_mask_2d
2744
+ // CHECK: %[[VAL_0:.*]] = arith.constant dense<[true, true, false, false]> : vector<4xi1>
2745
+ // CHECK: %[[VAL_1:.*]] = arith.constant dense<false> : vector<4x4xi1>
2746
+ // CHECK: %[[VAL_2:.*]] = builtin.unrealized_conversion_cast %[[VAL_1]] : vector<4x4xi1> to !llvm.array<4 x vector<4xi1>>
2747
+ // CHECK: %[[VAL_3:.*]] = llvm.insertvalue %[[VAL_0]], %[[VAL_2]][0] : !llvm.array<4 x vector<4xi1>>
2748
+ // CHECK: %[[VAL_4:.*]] = llvm.insertvalue %[[VAL_0]], %[[VAL_3]][1] : !llvm.array<4 x vector<4xi1>>
2749
+ // CHECK: %[[VAL_5:.*]] = builtin.unrealized_conversion_cast %[[VAL_4]] : !llvm.array<4 x vector<4xi1>> to vector<4x4xi1>
2750
+ // CHECK: return %[[VAL_5]] : vector<4x4xi1>
2751
+
2752
+ // -----
2753
+
2754
+ func.func @constant_mask_2d_trailing_scalable () -> vector <4 x[4 ]xi1 > {
2739
2755
%0 = vector.constant_mask [2 , 4 ] : vector <4 x[4 ]xi1 >
2740
2756
return %0 : vector <4 x[4 ]xi1 >
2741
2757
}
2742
- // CHECK-LABEL: func.func @genbool_2d_trailing_scalable
2758
+ // CHECK-LABEL: func.func @constant_mask_2d_trailing_scalable
2743
2759
// CHECK: %[[VAL_0:.*]] = arith.constant dense<true> : vector<[4]xi1>
2744
2760
// CHECK: %[[VAL_1:.*]] = arith.constant dense<false> : vector<4x[4]xi1>
2745
2761
// CHECK: %[[VAL_2:.*]] = builtin.unrealized_conversion_cast %[[VAL_1]] : vector<4x[4]xi1> to !llvm.array<4 x vector<[4]xi1>>
@@ -2752,32 +2768,16 @@ func.func @genbool_2d_trailing_scalable() -> vector<4x[4]xi1> {
2752
2768
2753
2769
/// Currently, this is not supported as generating the mask would require
2754
2770
/// unrolling the leading scalable dimension at compile time.
2755
- func.func @cannot_genbool_2d_leading_scalable () -> vector <[4 ]x4 xi1 > {
2771
+ func.func @negative_constant_mask_2d_leading_scalable () -> vector <[4 ]x4 xi1 > {
2756
2772
%0 = vector.constant_mask [4 , 2 ] : vector <[4 ]x4 xi1 >
2757
2773
return %0 : vector <[4 ]x4 xi1 >
2758
2774
}
2759
- // CHECK-LABEL: func.func @cannot_genbool_2d_leading_scalable
2775
+ // CHECK-LABEL: func.func @negative_constant_mask_2d_leading_scalable
2760
2776
// CHECK: %[[VAL_0:.*]] = vector.constant_mask [4, 2] : vector<[4]x4xi1>
2761
2777
// CHECK: return %[[VAL_0]] : vector<[4]x4xi1>
2762
2778
2763
2779
// -----
2764
2780
2765
- func.func @genbool_2d () -> vector <4 x4 xi1 > {
2766
- %v = vector.constant_mask [2 , 2 ] : vector <4 x4 xi1 >
2767
- return %v: vector <4 x4 xi1 >
2768
- }
2769
-
2770
- // CHECK-LABEL: func @genbool_2d
2771
- // CHECK: %[[VAL_0:.*]] = arith.constant dense<[true, true, false, false]> : vector<4xi1>
2772
- // CHECK: %[[VAL_1:.*]] = arith.constant dense<false> : vector<4x4xi1>
2773
- // CHECK: %[[VAL_2:.*]] = builtin.unrealized_conversion_cast %[[VAL_1]] : vector<4x4xi1> to !llvm.array<4 x vector<4xi1>>
2774
- // CHECK: %[[VAL_3:.*]] = llvm.insertvalue %[[VAL_0]], %[[VAL_2]][0] : !llvm.array<4 x vector<4xi1>>
2775
- // CHECK: %[[VAL_4:.*]] = llvm.insertvalue %[[VAL_0]], %[[VAL_3]][1] : !llvm.array<4 x vector<4xi1>>
2776
- // CHECK: %[[VAL_5:.*]] = builtin.unrealized_conversion_cast %[[VAL_4]] : !llvm.array<4 x vector<4xi1>> to vector<4x4xi1>
2777
- // CHECK: return %[[VAL_5]] : vector<4x4xi1>
2778
-
2779
- // -----
2780
-
2781
2781
func.func @create_mask_0d (%a : index ) -> vector <i1 > {
2782
2782
%v = vector.create_mask %a : vector <i1 >
2783
2783
return %v: vector <i1 >
0 commit comments