Skip to content

Commit 07fb538

Browse files
authored
Integrate up to llvm/llvm-project@ab10f08 Reapply: - llvm/llvm-project#183395, it's reverted on upstream: llvm/llvm-project@f2cdf3f
1 parent 314b4e6 commit 07fb538

File tree

9 files changed

+15
-18
lines changed

9 files changed

+15
-18
lines changed

compiler/src/iree/compiler/Codegen/Common/GPU/VectorReductionToGPU.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -229,7 +229,7 @@ struct VectorReductionToGPUPass final
229229
// TODO: Remove once MultiDimReduce is supported by distribute patterns.
230230
{
231231
RewritePatternSet patterns(ctx);
232-
vector::populateVectorMultiReductionReorderAndExpandPatterns(
232+
vector::populateVectorMultiReductionReorderPatterns(
233233
patterns, vector::VectorMultiReductionLowering::InnerReduction);
234234
vector::populateVectorMultiReductionFlatteningPatterns(
235235
patterns, vector::VectorMultiReductionLowering::InnerReduction);

compiler/src/iree/compiler/Codegen/Common/GPU/test/gpu_nested_layout_vector_distribution_multi_reduce.mlir

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -155,18 +155,16 @@ builtin.module attributes { transform.with_named_sequence } {
155155
// Thread reduction
156156
// CHECK: %[[THREAD_RED0:.+]] = gpu.subgroup_reduce maximumf %{{.*}} cluster(size = 4, stride = 16) : (f32) -> f32
157157
// CHECK: %[[THREAD_RED2:.+]] = gpu.subgroup_reduce maximumf %{{.*}} cluster(size = 4, stride = 16) : (f32) -> f32
158-
// CHECK: %[[THREAD_RED3:.+]] = vector.from_elements %[[THREAD_RED0]], %[[THREAD_RED2]] : vector<2xf32>
159-
// CHECK: %[[THREAD_RED4:.+]] = vector.shape_cast %[[THREAD_RED3]] : vector<2xf32> to vector<2x1x1xf32>
160158
// Subgroup reduction
161159
// CHECK-DAG: %[[ALLOC:.+]] = memref.alloc() : memref<32x2xf32, #gpu.address_space<workgroup>>
162160
// CHECK: gpu.barrier memfence [#gpu.address_space<workgroup>]
163161
// CHECK-DAG: %[[SGID:.+]]:3 = affine.delinearize_index %thread_id_x into (2, 64)
164162
// CHECK-DAG: %[[TIDX:.+]]:2 = affine.delinearize_index %thread_id_x into (16)
165-
// CHECK-DAG: %[[EXTRACT0:.+]] = vector.extract %[[THREAD_RED4]][0] : vector<1x1xf32> from vector<2x1x1xf32>
166-
// CHECK-DAG: %[[EXTRACT1:.+]] = vector.extract %[[THREAD_RED4]][1] : vector<1x1xf32> from vector<2x1x1xf32>
163+
// CHECK-DAG: %[[BROADCAST0:.+]] = vector.broadcast %[[THREAD_RED0]] : f32 to vector<1x1xf32>
164+
// CHECK-DAG: vector.transfer_write %[[BROADCAST0]], %[[ALLOC]][%[[TIDX]]#1, %[[SGID]]#1]
167165
// CHECK-DAG: %[[TIDX1:.+]] = affine.linearize_index disjoint [%c1, %[[TIDX]]#1] by (2, 16) : index
168-
// CHECK-DAG: vector.transfer_write %[[EXTRACT0]], %[[ALLOC]][%[[TIDX]]#1, %[[SGID]]#1]
169-
// CHECK-DAG: vector.transfer_write %[[EXTRACT1]], %[[ALLOC]][%[[TIDX1]], %[[SGID]]#1]
166+
// CHECK-DAG: %[[BROADCAST1:.+]] = vector.broadcast %[[THREAD_RED2]] : f32 to vector<1x1xf32>
167+
// CHECK-DAG: vector.transfer_write %[[BROADCAST1]], %[[ALLOC]][%[[TIDX1]], %[[SGID]]#1]
170168
// CHECK: gpu.barrier memfence [#gpu.address_space<workgroup>]
171169
// CHECK-DAG: %[[BATCH0:.+]]:3 = affine.delinearize_index %thread_id_x into (2, 16) : index, index, index
172170
// CHECK-DAG: %[[SG_READ0:.+]] = vector.transfer_read %alloc[%[[BATCH0]]#2, %[[BATCH0]]#1], %{{.*}} : memref<32x2xf32, #gpu.address_space<workgroup>>, vector<1x1xf32>
@@ -177,9 +175,8 @@ builtin.module attributes { transform.with_named_sequence } {
177175
// CHECK-DAG: %[[RED0:.+]] = gpu.subgroup_reduce maximumf %[[DISTR0]] cluster(size = 2, stride = 16) : (f32) -> f32
178176
// CHECK-DAG: %[[DISTR1:.+]] = vector.extract %[[SG_READ1]][0, 0] : f32 from vector<1x1xf32>
179177
// CHECK-DAG: %[[RED1:.+]] = gpu.subgroup_reduce maximumf %[[DISTR1]] cluster(size = 2, stride = 16) : (f32) -> f32
180-
// CHECK-DAG: %[[INS:.+]] = vector.from_elements %[[RED0]], %[[RED1]] : vector<2xf32>
181-
// CHECK-DAG: %[[CAST:.+]] = vector.shape_cast %[[INS]] : vector<2xf32> to vector<2x1x1xf32>
182-
// CHECK-DAG: arith.maximumf %[[CAST]], %[[ACC]] : vector<2x1x1xf32>
178+
// CHECK-DAG: %[[INS:.+]] = vector.from_elements %[[RED0]], %[[RED1]] : vector<2x1x1xf32>
179+
// CHECK-DAG: arith.maximumf %[[INS]], %[[ACC]] : vector<2x1x1xf32>
183180

184181
// -----
185182

compiler/src/iree/compiler/Codegen/LLVMCPU/LLVMCPUVirtualVectorLowering.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ void LLVMCPUVirtualVectorLoweringPass::runOnOperation() {
9090
vector::populateScalarVectorTransferLoweringPatterns(
9191
patterns, /*benefit=*/1, /*allowMultipleUses=*/true);
9292
vector::populateVectorTransferPermutationMapLoweringPatterns(patterns);
93-
vector::populateVectorMultiReductionReorderAndExpandPatterns(
93+
vector::populateVectorMultiReductionReorderPatterns(
9494
patterns, vectorMultiReductionLowering);
9595
vector::populateVectorMultiReductionFlatteningPatterns(
9696
patterns, vectorMultiReductionLowering);

compiler/src/iree/compiler/Codegen/LLVMGPU/LLVMGPUVectorLowering.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -607,7 +607,7 @@ struct LLVMGPUVectorLoweringPass final
607607
vector::populateVectorGatherLoweringPatterns(contractLoweringPatterns);
608608
vector::populateVectorMaskOpLoweringPatterns(contractLoweringPatterns);
609609
vector::populateVectorShapeCastLoweringPatterns(contractLoweringPatterns);
610-
vector::populateVectorMultiReductionReorderAndExpandPatterns(
610+
vector::populateVectorMultiReductionReorderPatterns(
611611
contractLoweringPatterns,
612612
vector::VectorMultiReductionLowering::InnerReduction);
613613
vector::populateVectorMultiReductionFlatteningPatterns(

compiler/src/iree/compiler/Codegen/LLVMGPU/TransformExtensions/LLVMGPUExtensions.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -500,7 +500,7 @@ static void populateMultiReductionLoweringPatterns(Operation *target,
500500
PatternBenefit benefit) {
501501
assert(target->hasTrait<OpTrait::IsIsolatedFromAbove>());
502502

503-
vector::populateVectorMultiReductionReorderAndExpandPatterns(
503+
vector::populateVectorMultiReductionReorderPatterns(
504504
patterns, vector::VectorMultiReductionLowering::InnerReduction, benefit);
505505
vector::populateVectorMultiReductionFlatteningPatterns(
506506
patterns, vector::VectorMultiReductionLowering::InnerReduction, benefit);

compiler/src/iree/compiler/Codegen/SPIRV/SPIRVFinalVectorLowering.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ class SPIRVFinalVectorLoweringPass final
8080
vector::populateVectorBroadcastLoweringPatterns(patterns);
8181
vector::populateVectorContractLoweringPatterns(
8282
patterns, options.vectorContractLowering);
83-
vector::populateVectorMultiReductionReorderAndExpandPatterns(
83+
vector::populateVectorMultiReductionReorderPatterns(
8484
patterns, vector::VectorMultiReductionLowering::InnerParallel);
8585
vector::populateVectorMultiReductionFlatteningPatterns(
8686
patterns, vector::VectorMultiReductionLowering::InnerParallel);

compiler/src/iree/compiler/Codegen/SPIRV/SPIRVInitialVectorLowering.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -391,7 +391,7 @@ class SPIRVInitialLoweringPass final
391391
return WalkResult::advance();
392392
});
393393
RewritePatternSet patterns(context);
394-
vector::populateVectorMultiReductionReorderAndExpandPatterns(
394+
vector::populateVectorMultiReductionReorderPatterns(
395395
patterns, vector::VectorMultiReductionLowering::InnerParallel);
396396
vector::populateVectorMultiReductionFlatteningPatterns(
397397
patterns, vector::VectorMultiReductionLowering::InnerParallel);

compiler/src/iree/compiler/Dialect/LinalgExt/IR/test/invalid.mlir

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1058,7 +1058,7 @@ func.func @pack_invalid(%input: tensor<256x128xf32>, %output: tensor<8x8x32x16xf
10581058
// -----
10591059

10601060
// duplicate element in `outer_dims_perm`, fail.
1061-
func.func @pack_invalid(%input: tensor<256x128xf32>, %output: tensor<8x8x32x16xf32>) -> tensor<8x8x32x16xf32> {
1061+
func.func @pack_invalid(%input: tensor<256x128xf32>, %output: tensor<8x8x32x16xf32>) -> tensor<256x128xf32> {
10621062
// expected-error@+1 {{invalid outer_dims_perm vector}}
10631063
%0 = iree_linalg_ext.unpack %output outer_dims_perm = [1, 1] inner_dims_pos = [0, 1] inner_tiles = [2, 2] into %input : (tensor<8x8x32x16xf32> tensor<256x128xf32>) -> tensor<256x128xf32>
10641064
return %0 : tensor<256x128xf32>
@@ -1067,7 +1067,7 @@ func.func @pack_invalid(%input: tensor<256x128xf32>, %output: tensor<8x8x32x16xf
10671067
// -----
10681068

10691069
// `outer_dims_perm` is out of bound.
1070-
func.func @pack_invalid(%input: tensor<256x128xf32>, %output: tensor<8x8x32x16xf32>) -> tensor<8x8x32x16xf32> {
1070+
func.func @pack_invalid(%input: tensor<256x128xf32>, %output: tensor<8x8x32x16xf32>) -> tensor<256x128xf32> {
10711071
// expected-error@+1 {{invalid outer_dims_perm vector}}
10721072
%0 = iree_linalg_ext.unpack %output outer_dims_perm = [2, 1] inner_dims_pos = [0, 1] inner_tiles = [2, 2] into %input : (tensor<8x8x32x16xf32> tensor<256x128xf32>) -> tensor<256x128xf32>
10731073
return %0 : tensor<256x128xf32>

third_party/llvm-project

Submodule llvm-project updated 2664 files

0 commit comments

Comments
 (0)