[flang-commits] [flang] [mlir] [MLIR][OpenMP] Fix type mismatch in linear clause for INTEGER(8) variables (PR #173982)
via flang-commits
flang-commits at lists.llvm.org
Tue Dec 30 04:41:39 PST 2025
github-actions[bot] wrote:
<!--PREMERGE ADVISOR COMMENT: Windows-->
# :window: Windows x64 Test Results
* 7204 tests passed
* 655 tests skipped
* 2 tests failed
## Failed Tests
(click on a test name to see its output)
### Flang
<details>
<summary>Flang.Integration/OpenMP/linear-i8-issue-173332.f90</summary>
```
Exit Code: 1
Command Output (stdout):
--
# RUN: at line 3
c:\_work\llvm-project\llvm-project\build\bin\flang.exe -fc1 -fopenmp -emit-llvm C:\_work\llvm-project\llvm-project\flang\test\Integration\OpenMP\linear-i8-issue-173332.f90 -o - | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\flang\test\Integration\OpenMP\linear-i8-issue-173332.f90
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\flang.exe' -fc1 -fopenmp -emit-llvm 'C:\_work\llvm-project\llvm-project\flang\test\Integration\OpenMP\linear-i8-issue-173332.f90' -o -
# note: command had no output on stdout or stderr
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' 'C:\_work\llvm-project\llvm-project\flang\test\Integration\OpenMP\linear-i8-issue-173332.f90'
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\flang\test\Integration\OpenMP\linear-i8-issue-173332.f90:5:16: error: CHECK-LABEL: expected string not found in input
# | ! CHECK-LABEL: define {{.*}} @_QPrepro_issue_173332
# | ^
# | <stdin>:1:1: note: scanning from here
# | ; ModuleID = 'FIRModule'
# | ^
# | <stdin>:12:1: note: possible intended match here
# | define void @repro_issue_173332_() {
# | ^
# |
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\flang\test\Integration\OpenMP\linear-i8-issue-173332.f90
# |
# | -dump-input=help explains the following input dump.
# |
# | Input was:
# | <<<<<<
# | 1: ; ModuleID = 'FIRModule'
# | label:5'0 X~~~~~~~~~~~~~~~~~~~~~~~~ error: no match found
# | 2: source_filename = "FIRModule"
# | label:5'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 3: target datalayout = "e-m:w-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
# | label:5'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 4: target triple = "x86_64-pc-windows-msvc"
# | label:5'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 5:
# | label:5'0 ~
# | 6: %struct.ident_t = type { i32, i32, i32, i32, ptr }
# | label:5'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 7:
# | label:5'0 ~
# | 8: @0 = private unnamed_addr constant [23 x i8] c";unknown;unknown;0;0;;\00", align 1
# | label:5'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 9: @1 = private unnamed_addr constant %struct.ident_t { i32 0, i32 2, i32 0, i32 22, ptr @0 }, align 8
# | label:5'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 10: @2 = private unnamed_addr constant %struct.ident_t { i32 0, i32 66, i32 0, i32 22, ptr @0 }, align 8
# | label:5'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 11:
# | label:5'0 ~
# | 12: define void @repro_issue_173332_() {
# | label:5'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | label:5'1 ? possible intended match
# | 13: %structArg = alloca { ptr }, align 8
# | label:5'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 14: %1 = alloca i64, i64 1, align 8
# | label:5'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 15: %2 = alloca i64, i64 1, align 8
# | label:5'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 16: br label %entry
# | label:5'0 ~~~~~~~~~~~~~~~~~
# | 17:
# | label:5'0 ~
# | .
# | .
# | .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1
--
```
</details>
<details>
<summary>Flang.Lower/OpenMP/parallel-do-simd-linear-i8.f90</summary>
```
Exit Code: 1
Command Output (stdout):
--
# RUN: at line 5
c:\_work\llvm-project\llvm-project\build\bin\flang.exe -fc1 -fopenmp -emit-hlfir C:\_work\llvm-project\llvm-project\flang\test\Lower\OpenMP\parallel-do-simd-linear-i8.f90 -o - 2>&1 | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\flang\test\Lower\OpenMP\parallel-do-simd-linear-i8.f90
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\flang.exe' -fc1 -fopenmp -emit-hlfir 'C:\_work\llvm-project\llvm-project\flang\test\Lower\OpenMP\parallel-do-simd-linear-i8.f90' -o -
# note: command had no output on stdout or stderr
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' 'C:\_work\llvm-project\llvm-project\flang\test\Lower\OpenMP\parallel-do-simd-linear-i8.f90'
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\flang\test\Lower\OpenMP\parallel-do-simd-linear-i8.f90:15:11: error: CHECK: expected string not found in input
# | ! CHECK: omp.parallel
# | ^
# | <stdin>:14:34: note: scanning from here
# | %c1_i32 = arith.constant 1 : i32
# | ^
# | <stdin>:22:2: note: possible intended match here
# | omp.simd linear(%4#0 = %c1_i32 : !fir.ref<i64>) private(@_QFtest_linear_i8Ei_private_i64 %2#0 -> %arg0 : !fir.ref<i64>) {
# | ^
# | C:\_work\llvm-project\llvm-project\flang\test\Lower\OpenMP\parallel-do-simd-linear-i8.f90:35:16: error: CHECK-SAME: is not on the same line as the previous match
# | ! CHECK-SAME: linear(%[[J]]#0 = {{.*}} : !fir.ref<i64>)
# | ^
# | <stdin>:49:11: note: 'next' match was here
# | omp.simd linear(%4#0 = %c2_i32 : !fir.ref<i64>) private(@_QFtest_linear_i8_with_stepEi_private_i64 %2#0 -> %arg0 : !fir.ref<i64>) {
# | ^
# | <stdin>:48:12: note: previous match ended here
# | omp.wsloop {
# | ^
# | C:\_work\llvm-project\llvm-project\flang\test\Lower\OpenMP\parallel-do-simd-linear-i8.f90:85:11: error: CHECK: expected string not found in input
# | ! CHECK: %[[STEP_J:.*]] = arith.constant 1 : i64
# | ^
# | <stdin>:112:25: note: scanning from here
# | %6:2 = hlfir.declare %5 {uniq_name = "_QFtest_multiple_i8Ek"} : (!fir.ref<i64>) -> (!fir.ref<i64>, !fir.ref<i64>)
# | ^
# | <stdin>:113:4: note: possible intended match here
# | %c1_i32 = arith.constant 1 : i32
# | ^
# |
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\flang\test\Lower\OpenMP\parallel-do-simd-linear-i8.f90
# |
# | -dump-input=help explains the following input dump.
# |
# | Input was:
# | <<<<<<
# | .
# | .
# | .
# | 9: %1 = fir.alloca i64 {bindc_name = "i", uniq_name = "_QFtest_linear_i8Ei"}
# | 10: %2:2 = hlfir.declare %1 {uniq_name = "_QFtest_linear_i8Ei"} : (!fir.ref<i64>) -> (!fir.ref<i64>, !fir.ref<i64>)
# | 11: %3 = fir.alloca i64 {bindc_name = "j", uniq_name = "_QFtest_linear_i8Ej"}
# | 12: %4:2 = hlfir.declare %3 {uniq_name = "_QFtest_linear_i8Ej"} : (!fir.ref<i64>) -> (!fir.ref<i64>, !fir.ref<i64>)
# | 13: omp.parallel {
# | 14: %c1_i32 = arith.constant 1 : i32
# | check:15'0 X error: no match found
# | 15: %c1_i32_0 = arith.constant 1 : i32
# | check:15'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 16: %c100_i32 = arith.constant 100 : i32
# | check:15'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 17: %c1_i32_1 = arith.constant 1 : i32
# | check:15'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 18: %5 = fir.convert %c1_i32_0 : (i32) -> i64
# | check:15'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 19: %6 = fir.convert %c100_i32 : (i32) -> i64
# | check:15'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 20: %7 = fir.convert %c1_i32_1 : (i32) -> i64
# | check:15'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 21: omp.wsloop {
# | check:15'0 ~~~~~~~~~~~~~~
# | 22: omp.simd linear(%4#0 = %c1_i32 : !fir.ref<i64>) private(@_QFtest_linear_i8Ei_private_i64 %2#0 -> %arg0 : !fir.ref<i64>) {
# | check:15'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | check:15'1 ? possible intended match
# | 23: omp.loop_nest (%arg1) : i64 = (%5) to (%6) inclusive step (%7) {
# | check:15'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 24: %8:2 = hlfir.declare %arg0 {uniq_name = "_QFtest_linear_i8Ei"} : (!fir.ref<i64>) -> (!fir.ref<i64>, !fir.ref<i64>)
# | check:15'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 25: hlfir.assign %arg1 to %8#0 : i64, !fir.ref<i64>
# | check:15'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 26: omp.yield
# | check:15'0 ~~~~~~~~~~~
# | 27: }
# | check:15'0 ~~~
# | .
# | .
# | .
# | 44: %c1_i32_0 = arith.constant 1 : i32
# | 45: %5 = fir.convert %c1_i32 : (i32) -> i64
# | 46: %6 = fir.convert %c100_i32 : (i32) -> i64
# | 47: %7 = fir.convert %c1_i32_0 : (i32) -> i64
# | 48: omp.wsloop {
# | 49: omp.simd linear(%4#0 = %c2_i32 : !fir.ref<i64>) private(@_QFtest_linear_i8_with_stepEi_private_i64 %2#0 -> %arg0 : !fir.ref<i64>) {
# | same:35 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ error: match on wrong line
# | 50: omp.loop_nest (%arg1) : i64 = (%5) to (%6) inclusive step (%7) {
# | 51: %8:2 = hlfir.declare %arg0 {uniq_name = "_QFtest_linear_i8_with_stepEi"} : (!fir.ref<i64>) -> (!fir.ref<i64>, !fir.ref<i64>)
# | 52: hlfir.assign %arg1 to %8#0 : i64, !fir.ref<i64>
# | 53: omp.yield
# | 54: }
# | .
# | .
# | .
# | 107: %1 = fir.alloca i64 {bindc_name = "i", uniq_name = "_QFtest_multiple_i8Ei"}
# | 108: %2:2 = hlfir.declare %1 {uniq_name = "_QFtest_multiple_i8Ei"} : (!fir.ref<i64>) -> (!fir.ref<i64>, !fir.ref<i64>)
# | 109: %3 = fir.alloca i64 {bindc_name = "j", uniq_name = "_QFtest_multiple_i8Ej"}
# | 110: %4:2 = hlfir.declare %3 {uniq_name = "_QFtest_multiple_i8Ej"} : (!fir.ref<i64>) -> (!fir.ref<i64>, !fir.ref<i64>)
# | 111: %5 = fir.alloca i64 {bindc_name = "k", uniq_name = "_QFtest_multiple_i8Ek"}
# | 112: %6:2 = hlfir.declare %5 {uniq_name = "_QFtest_multiple_i8Ek"} : (!fir.ref<i64>) -> (!fir.ref<i64>, !fir.ref<i64>)
# | check:85'0 X~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ error: no match found
# | 113: %c1_i32 = arith.constant 1 : i32
# | check:85'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | check:85'1 ? possible intended match
# | 114: %c1_i32_0 = arith.constant 1 : i32
# | check:85'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 115: %c100_i32 = arith.constant 100 : i32
# | check:85'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 116: %c1_i32_1 = arith.constant 1 : i32
# | check:85'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 117: %7 = fir.convert %c1_i32_0 : (i32) -> i64
# | check:85'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 118: %8 = fir.convert %c100_i32 : (i32) -> i64
# | check:85'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/173982
More information about the flang-commits
mailing list