[Mlir-commits] [flang] [mlir] [llvm][mlir][OpenMP] Support translation for linear clause in omp.wsloop and omp.simd (PR #139386)

llvmlistbot at llvm.org llvmlistbot at llvm.org
Sat Nov 29 04:41:39 PST 2025


github-actions[bot] wrote:

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

* 7154 tests passed
* 594 tests skipped
* 2 tests failed

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

### Flang
<details>
<summary>Flang.Lower/OpenMP/simd-linear.f90</summary>

```
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 4
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/flang -fc1 -fopenmp -emit-hlfir /home/gha/actions-runner/_work/llvm-project/llvm-project/flang/test/Lower/OpenMP/simd-linear.f90 -o - 2>&1 | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/flang/test/Lower/OpenMP/simd-linear.f90
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/flang -fc1 -fopenmp -emit-hlfir /home/gha/actions-runner/_work/llvm-project/llvm-project/flang/test/Lower/OpenMP/simd-linear.f90 -o -
# 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/flang/test/Lower/OpenMP/simd-linear.f90
# .---command stderr------------
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/flang/test/Lower/OpenMP/simd-linear.f90:38:10: error: CHECK: expected string not found in input
# |  !CHECK: } {linear_var_types = [i32]}
# |          ^
# | <stdin>:48:35: note: scanning from here
# |  %9 = arith.addi %8, %c2_i32 : i32
# |                                   ^
# | <stdin>:52:2: note: possible intended match here
# |  } {linear_var_types = [i32, i32]}
# |  ^
# | 
# | Input file: <stdin>
# | Check file: /home/gha/actions-runner/_work/llvm-project/llvm-project/flang/test/Lower/OpenMP/simd-linear.f90
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |             .
# |             .
# |             .
# |            43:  omp.loop_nest (%arg1) : i32 = (%c1_i32) to (%c10_i32) inclusive step (%c1_i32_0) { 
# |            44:  %7:2 = hlfir.declare %arg0 {uniq_name = "_QFlinear_stepEi"} : (!fir.ref<i32>) -> (!fir.ref<i32>, !fir.ref<i32>) 
# |            45:  hlfir.assign %arg1 to %7#0 : i32, !fir.ref<i32> 
# |            46:  %8 = fir.load %4#0 : !fir.ref<i32> 
# |            47:  %c2_i32 = arith.constant 2 : i32 
# |            48:  %9 = arith.addi %8, %c2_i32 : i32 
# | check:38'0                                       X error: no match found
# |            49:  hlfir.assign %9 to %6#0 : i32, !fir.ref<i32> 
# | check:38'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            50:  omp.yield 
# | check:38'0     ~~~~~~~~~~~
# |            51:  } 
# | check:38'0     ~~~
# |            52:  } {linear_var_types = [i32, i32]} 
# | check:38'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | check:38'1      ?                                  possible intended match
# |            53:  return 
# | check:38'0     ~~~~~~~~
# |            54:  } 
# | check:38'0     ~~~
# |            55:  func.func @_QPlinear_expr() { 
# | check:38'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            56:  %0 = fir.dummy_scope : !fir.dscope 
# | check:38'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            57:  %1 = fir.alloca i32 {bindc_name = "a", uniq_name = "_QFlinear_exprEa"} 
# | check:38'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             .
# |             .
# |             .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1

--

```
</details>
<details>
<summary>Flang.Lower/OpenMP/wsloop-linear.f90</summary>

```
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 4
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/flang -fc1 -fopenmp -emit-hlfir /home/gha/actions-runner/_work/llvm-project/llvm-project/flang/test/Lower/OpenMP/wsloop-linear.f90 -o - 2>&1 | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/flang/test/Lower/OpenMP/wsloop-linear.f90
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/flang -fc1 -fopenmp -emit-hlfir /home/gha/actions-runner/_work/llvm-project/llvm-project/flang/test/Lower/OpenMP/wsloop-linear.f90 -o -
# 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/flang/test/Lower/OpenMP/wsloop-linear.f90
# .---command stderr------------
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/flang/test/Lower/OpenMP/wsloop-linear.f90:40:10: error: CHECK: expected string not found in input
# |  !CHECK: } {linear_var_types = [i32]}
# |          ^
# | <stdin>:48:35: note: scanning from here
# |  %9 = arith.addi %8, %c2_i32 : i32
# |                                   ^
# | <stdin>:52:2: note: possible intended match here
# |  } {linear_var_types = [i32, i32]}
# |  ^
# | 
# | Input file: <stdin>
# | Check file: /home/gha/actions-runner/_work/llvm-project/llvm-project/flang/test/Lower/OpenMP/wsloop-linear.f90
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |             .
# |             .
# |             .
# |            43:  omp.loop_nest (%arg1) : i32 = (%c1_i32) to (%c10_i32) inclusive step (%c1_i32_0) { 
# |            44:  %7:2 = hlfir.declare %arg0 {uniq_name = "_QFlinear_stepEi"} : (!fir.ref<i32>) -> (!fir.ref<i32>, !fir.ref<i32>) 
# |            45:  hlfir.assign %arg1 to %7#0 : i32, !fir.ref<i32> 
# |            46:  %8 = fir.load %4#0 : !fir.ref<i32> 
# |            47:  %c2_i32 = arith.constant 2 : i32 
# |            48:  %9 = arith.addi %8, %c2_i32 : i32 
# | check:40'0                                       X error: no match found
# |            49:  hlfir.assign %9 to %6#0 : i32, !fir.ref<i32> 
# | check:40'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            50:  omp.yield 
# | check:40'0     ~~~~~~~~~~~
# |            51:  } 
# | check:40'0     ~~~
# |            52:  } {linear_var_types = [i32, i32]} 
# | check:40'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | check:40'1      ?                                  possible intended match
# |            53:  return 
# | check:40'0     ~~~~~~~~
# |            54:  } 
# | check:40'0     ~~~
# |            55:  func.func @_QPlinear_expr() { 
# | check:40'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            56:  %0 = fir.dummy_scope : !fir.dscope 
# | check:40'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            57:  %1 = fir.alloca i32 {bindc_name = "a", uniq_name = "_QFlinear_exprEa"} 
# | check:40'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/139386


More information about the Mlir-commits mailing list