@@ -2953,12 +2953,16 @@ func.func @vector_load_op_0d(%memref : memref<200x100xf32>, %i : index, %j : ind
29532953}
29542954
29552955// CHECK-LABEL: func @vector_load_op_0d
2956- // CHECK: %[[load:.*]] = memref.load %{{.*}}[%{{.*}}, %{{.*}}]
2957- // CHECK: %[[vec:.*]] = llvm.mlir.undef : vector<1xf32>
2958- // CHECK: %[[c0:.*]] = llvm.mlir.constant(0 : i32) : i32
2959- // CHECK: %[[inserted:.*]] = llvm.insertelement %[[load]], %[[vec]][%[[c0]] : i32] : vector<1xf32>
2960- // CHECK: %[[cast:.*]] = builtin.unrealized_conversion_cast %[[inserted]] : vector<1xf32> to vector<f32>
2961- // CHECK: return %[[cast]] : vector<f32>
2956+ // CHECK: %[[S0:.*]] = builtin.unrealized_conversion_cast %arg2 : index to i64
2957+ // CHECK: %[[S1:.*]] = builtin.unrealized_conversion_cast %arg1 : index to i64
2958+ // CHECK: %[[S2:.*]] = builtin.unrealized_conversion_cast %arg0 : memref<200x100xf32> to !llvm.struct<(ptr, ptr, i64, array<2 x i64>, array<2 x i64>)>
2959+ // CHECK: %[[S3:.*]] = llvm.extractvalue %[[S2]][1] : !llvm.struct<(ptr, ptr, i64, array<2 x i64>, array<2 x i64>)>
2960+ // CHECK: %[[S4:.*]] = llvm.mlir.constant(100 : index) : i64
2961+ // CHECK: %[[S5:.*]] = llvm.mul %[[S1]], %[[S4]] : i64
2962+ // CHECK: %[[S6:.*]] = llvm.add %[[S5]], %[[S0]] : i64
2963+ // CHECK: %[[S7:.*]] = llvm.getelementptr %[[S3]][%[[S6]]] : (!llvm.ptr, i64) -> !llvm.ptr, f32
2964+ // CHECK: %[[S8:.*]] = llvm.load %[[S7]] {alignment = 4 : i64} : !llvm.ptr -> vector<1xf32>
2965+ // CHECK: %[[S9:.*]] = builtin.unrealized_conversion_cast %[[S8]] : vector<1xf32> to vector<f32>
29622966
29632967// -----
29642968
@@ -2969,11 +2973,17 @@ func.func @vector_store_op_0d(%memref : memref<200x100xf32>, %i : index, %j : in
29692973}
29702974
29712975// CHECK-LABEL: func @vector_store_op_0d
2972- // CHECK: %[[val:.*]] = arith.constant dense<1.100000e+01> : vector<f32>
2973- // CHECK: %[[cast:.*]] = builtin.unrealized_conversion_cast %[[val]] : vector<f32> to vector<1xf32>
2974- // CHECK: %[[c0:.*]] = llvm.mlir.constant(0 : index) : i64
2975- // CHECK: %[[extracted:.*]] = llvm.extractelement %[[cast]][%[[c0]] : i64] : vector<1xf32>
2976- // CHECK: memref.store %[[extracted]], %{{.*}}[%{{.*}}, %{{.*}}]
2976+ // CHECK: %[[S0:.*]] = builtin.unrealized_conversion_cast %arg2 : index to i64
2977+ // CHECK: %[[S1:.*]] = builtin.unrealized_conversion_cast %arg1 : index to i64
2978+ // CHECK: %[[S2:.*]] = builtin.unrealized_conversion_cast %arg0 : memref<200x100xf32> to !llvm.struct<(ptr, ptr, i64, array<2 x i64>, array<2 x i64>)>
2979+ // CHECK: %[[S3:.*]] = arith.constant dense<1.100000e+01> : vector<f32>
2980+ // CHECK: %[[S4:.*]] = builtin.unrealized_conversion_cast %[[S3]] : vector<f32> to vector<1xf32>
2981+ // CHECK: %[[S5:.*]] = llvm.extractvalue %[[S2]][1] : !llvm.struct<(ptr, ptr, i64, array<2 x i64>, array<2 x i64>)>
2982+ // CHECK: %[[S6:.*]] = llvm.mlir.constant(100 : index) : i64
2983+ // CHECK: %[[S7:.*]] = llvm.mul %[[S1]], %[[S6]] : i64
2984+ // CHECK: %[[S8:.*]] = llvm.add %[[S7]], %[[S0]] : i64
2985+ // CHECK: %[[S9:.*]] = llvm.getelementptr %[[S5]][%[[S8]]] : (!llvm.ptr, i64) -> !llvm.ptr, f32
2986+ // CHECK: llvm.store %[[S4]], %[[S9]] {alignment = 4 : i64} : vector<1xf32>, !llvm.ptr
29772987
29782988// -----
29792989
0 commit comments