[Mlir-commits] [mlir] [MLIR][XeGPU] Enable one-step subgroup distribution of cross-lane reduction to shuffle op (PR #182698)

llvmlistbot at llvm.org llvmlistbot at llvm.org
Sat Feb 21 12:00:28 PST 2026


github-actions[bot] wrote:

<!--PREMERGE ADVISOR COMMENT: Linux-->
# :penguin: Linux x64 Test Results

* 7514 tests passed
* 601 tests skipped
* 1 test failed

## Failed Tests
(click on a test name to see its output)

### MLIR
<details>
<summary>MLIR.Dialect/XeGPU/sg-to-wi-experimental-unit.mlir</summary>

```
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 2
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/mlir-opt  --xevm-attach-target='module=xevm_* chip=pvc' --allow-unregistered-dialect  --test-xegpu-sg-to-wi-distribute-experimental --split-input-file /home/gha/actions-runner/_work/llvm-project/llvm-project/mlir/test/Dialect/XeGPU/sg-to-wi-experimental-unit.mlir | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/mlir/test/Dialect/XeGPU/sg-to-wi-experimental-unit.mlir
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/mlir-opt '--xevm-attach-target=module=xevm_* chip=pvc' --allow-unregistered-dialect --test-xegpu-sg-to-wi-distribute-experimental --split-input-file /home/gha/actions-runner/_work/llvm-project/llvm-project/mlir/test/Dialect/XeGPU/sg-to-wi-experimental-unit.mlir
# note: command had no output on stdout or stderr
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/mlir/test/Dialect/XeGPU/sg-to-wi-experimental-unit.mlir
# .---command stderr------------
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/mlir/test/Dialect/XeGPU/sg-to-wi-experimental-unit.mlir:188:11: error: CHECK: expected string not found in input
# | // CHECK: %c1_i32 = arith.constant 1 : i32
# |           ^
# | <stdin>:122:36: note: scanning from here
# |  %c16_i32 = arith.constant 16 : i32
# |                                    ^
# | <stdin>:125:2: note: possible intended match here
# |  %c2_i32 = arith.constant 2 : i32
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/mlir/test/Dialect/XeGPU/sg-to-wi-experimental-unit.mlir:253:11: error: CHECK: expected string not found in input
# | // CHECK: %c1_i32 = arith.constant 1 : i32
# |           ^
# | <stdin>:173:36: note: scanning from here
# |  %c16_i32 = arith.constant 16 : i32
# |                                    ^
# | <stdin>:176:2: note: possible intended match here
# |  %c2_i32 = arith.constant 2 : i32
# |  ^
# | 
# | Input file: <stdin>
# | Check file: /home/gha/actions-runner/_work/llvm-project/llvm-project/mlir/test/Dialect/XeGPU/sg-to-wi-experimental-unit.mlir
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |              .
# |              .
# |              .
# |            117:  %0 = vector.extract_strided_slice %cst {offsets = [0, 0], sizes = [1, 1], strides = [1, 1]} : vector<2x1xf32> to vector<1x1xf32> 
# |            118:  %1 = vector.shape_cast %0 : vector<1x1xf32> to vector<1xf32> 
# |            119:  %2 = vector.extract %cst_0[0] : f32 from vector<2xf32> 
# |            120:  %3 = vector.reduction <add>, %1 : vector<1xf32> into f32 
# |            121:  %c1_i32 = arith.constant 1 : i32 
# |            122:  %c16_i32 = arith.constant 16 : i32 
# | check:188'0                                        X error: no match found
# |            123:  %shuffleResult, %valid = gpu.shuffle xor %3, %c1_i32, %c16_i32 : f32 
# | check:188'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            124:  %4 = arith.addf %3, %shuffleResult : f32 
# | check:188'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            125:  %c2_i32 = arith.constant 2 : i32 
# | check:188'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | check:188'1      ?                                 possible intended match
# |            126:  %c16_i32_2 = arith.constant 16 : i32 
# | check:188'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            127:  %shuffleResult_3, %valid_4 = gpu.shuffle xor %4, %c2_i32, %c16_i32_2 : f32 
# | check:188'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            128:  %5 = arith.addf %4, %shuffleResult_3 : f32 
# | check:188'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            129:  %c4_i32 = arith.constant 4 : i32 
# | check:188'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            130:  %c16_i32_5 = arith.constant 16 : i32 
# | check:188'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |              .
# |              .
# |              .
# |            168:  %0 = vector.extract_strided_slice %cst {offsets = [0, 0], sizes = [1, 1], strides = [1, 1]} : vector<1x2xf32> to vector<1x1xf32> 
# |            169:  %1 = vector.shape_cast %0 : vector<1x1xf32> to vector<1xf32> 
# |            170:  %2 = vector.extract %cst_0[0] : f32 from vector<2xf32> 
# |            171:  %3 = vector.reduction <add>, %1 : vector<1xf32> into f32 
# |            172:  %c1_i32 = arith.constant 1 : i32 
# |            173:  %c16_i32 = arith.constant 16 : i32 
# | check:253'0                                        X error: no match found
# |            174:  %shuffleResult, %valid = gpu.shuffle xor %3, %c1_i32, %c16_i32 : f32 
# | check:253'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            175:  %4 = arith.addf %3, %shuffleResult : f32 
# | check:253'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            176:  %c2_i32 = arith.constant 2 : i32 
# | check:253'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | check:253'1      ?                                 possible intended match
# |            177:  %c16_i32_2 = arith.constant 16 : i32 
# | check:253'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            178:  %shuffleResult_3, %valid_4 = gpu.shuffle xor %4, %c2_i32, %c16_i32_2 : f32 
# | check:253'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            179:  %5 = arith.addf %4, %shuffleResult_3 : f32 
# | check:253'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            180:  %c4_i32 = arith.constant 4 : i32 
# | check:253'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            181:  %c16_i32_5 = arith.constant 16 : i32 
# | check:253'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |              .
# |              .
# |              .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1

--

```
</details>

If these failures are unrelated to your changes (for example tests are broken or flaky at HEAD), please open an issue at https://github.com/llvm/llvm-project/issues and add the `infrastructure` label.

https://github.com/llvm/llvm-project/pull/182698


More information about the Mlir-commits mailing list