[clang] [llvm] [mlir] [IR] Make semantics of strictfp consistent (PR #209465)
via cfe-commits
cfe-commits at lists.llvm.org
Tue Jul 14 09:53:07 PDT 2026
github-actions[bot] wrote:
<!--PREMERGE ADVISOR COMMENT: Linux-->
# :penguin: Linux x64 Test Results
* 178937 tests passed
* 3540 tests skipped
* 2 tests failed
## Failed Tests
(click on a test name to see its output)
### lldb-api
<details>
<summary>lldb-api.lang/cpp/std-function-step-into-callable/TestStdFunctionStepIntoCallable.py</summary>
```
Script:
--
/usr/bin/python3 /home/gha/actions-runner/_work/llvm-project/llvm-project/lldb/test/API/dotest.py -u CXXFLAGS -u CFLAGS --env LLVM_LIBS_DIR=/home/gha/actions-runner/_work/llvm-project/llvm-project/build/./lib --env LLVM_INCLUDE_DIR=/home/gha/actions-runner/_work/llvm-project/llvm-project/build/include --env LLVM_TOOLS_DIR=/home/gha/actions-runner/_work/llvm-project/llvm-project/build/./bin --libcxx-include-dir /home/gha/actions-runner/_work/llvm-project/llvm-project/build/include/c++/v1 --libcxx-include-target-dir /home/gha/actions-runner/_work/llvm-project/llvm-project/build/include/x86_64-unknown-linux-gnu/c++/v1 --libcxx-library-dir /home/gha/actions-runner/_work/llvm-project/llvm-project/build/./lib/x86_64-unknown-linux-gnu --triple x86_64-unknown-linux-gnu --build-dir /home/gha/actions-runner/_work/llvm-project/llvm-project/build/lldb-test-build --lldb-module-cache-dir /home/gha/actions-runner/_work/llvm-project/llvm-project/build/lldb-test-build/module-cache-lldb/lldb-api --clang-module-cache-dir /home/gha/actions-runner/_work/llvm-project/llvm-project/build/lldb-test-build/module-cache-clang/lldb-api --executable /home/gha/actions-runner/_work/llvm-project/llvm-project/build/./bin/lldb --lldb-python-dir /home/gha/actions-runner/_work/llvm-project/llvm-project/build/local/lib/python3.12/dist-packages --compiler /home/gha/actions-runner/_work/llvm-project/llvm-project/build/./bin/clang --dsymutil /home/gha/actions-runner/_work/llvm-project/llvm-project/build/./bin/dsymutil --make /usr/bin/gmake --llvm-tools-dir /home/gha/actions-runner/_work/llvm-project/llvm-project/build/./bin --lldb-obj-root /home/gha/actions-runner/_work/llvm-project/llvm-project/build/tools/lldb --lldb-libs-dir /home/gha/actions-runner/_work/llvm-project/llvm-project/build/./lib --cmake-build-type Release /home/gha/actions-runner/_work/llvm-project/llvm-project/lldb/test/API/lang/cpp/std-function-step-into-callable -p TestStdFunctionStepIntoCallable.py
--
Exit Code: 1
Command Output (stdout):
--
Skipping the following test categories: msvcstl, dsym, pdb, gmodules, debugserver, objc
--
Command Output (stderr):
--
FAIL: LLDB (/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/clang-x86_64) :: test (TestStdFunctionStepIntoCallable.LibCxxFunctionSteppingIntoCallableTestCase.test)
Log Files:
- /home/gha/actions-runner/_work/llvm-project/llvm-project/build/lldb-test-build/lang/cpp/std-function-step-into-callable/TestStdFunctionStepIntoCallable/Failure_test.log
======================================================================
FAIL: test (TestStdFunctionStepIntoCallable.LibCxxFunctionSteppingIntoCallableTestCase.test)
Test that std::function as defined by libc++ is correctly printed by LLDB
----------------------------------------------------------------------
Traceback (most recent call last):
File "/home/gha/actions-runner/_work/llvm-project/llvm-project/lldb/test/API/lang/cpp/std-function-step-into-callable/TestStdFunctionStepIntoCallable.py", line 54, in test
self.assertEqual(
AssertionError: 32 != 4
Config=x86_64-/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/clang
----------------------------------------------------------------------
Ran 1 test in 0.640s
FAILED (failures=1)
--
```
</details>
### Clang
<details>
<summary>Clang.CodeGenOpenCL/cl20-device-side-enqueue-attributes.cl</summary>
```
Exit Code: 1
Command Output (stdout):
--
# RUN: at line 2
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/clang -cc1 -internal-isystem /home/gha/actions-runner/_work/llvm-project/llvm-project/build/lib/clang/24/include -nostdsysteminc -fno-ident -no-enable-noundef-analysis /home/gha/actions-runner/_work/llvm-project/llvm-project/clang/test/CodeGenOpenCL/cl20-device-side-enqueue-attributes.cl -cl-std=CL2.0 -ffake-address-space-map -O0 -emit-llvm -o - -triple "spir-unknown-unknown" -fdenormal-fp-math-f32=preserve-sign -cl-uniform-work-group-size | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck --check-prefix=SPIR32 /home/gha/actions-runner/_work/llvm-project/llvm-project/clang/test/CodeGenOpenCL/cl20-device-side-enqueue-attributes.cl
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/clang -cc1 -internal-isystem /home/gha/actions-runner/_work/llvm-project/llvm-project/build/lib/clang/24/include -nostdsysteminc -fno-ident -no-enable-noundef-analysis /home/gha/actions-runner/_work/llvm-project/llvm-project/clang/test/CodeGenOpenCL/cl20-device-side-enqueue-attributes.cl -cl-std=CL2.0 -ffake-address-space-map -O0 -emit-llvm -o - -triple spir-unknown-unknown -fdenormal-fp-math-f32=preserve-sign -cl-uniform-work-group-size
# note: command had no output on stdout or stderr
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck --check-prefix=SPIR32 /home/gha/actions-runner/_work/llvm-project/llvm-project/clang/test/CodeGenOpenCL/cl20-device-side-enqueue-attributes.cl
# .---command stderr------------
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/clang/test/CodeGenOpenCL/cl20-device-side-enqueue-attributes.cl:30:17: error: SPIR32-NEXT: expected string not found in input
# | // SPIR32-NEXT: [[DEFAULT_QUEUE:%.*]] = alloca ptr, align 4
# | ^
# | <stdin>:13:31: note: scanning from here
# | %i.addr = alloca i32, align 4
# | ^
# | <stdin>:13:31: note: pattern attempts to capture variables: "DEFAULT_QUEUE"
# | %i.addr = alloca i32, align 4
# | ^
# | <stdin>:29:4: note: possible intended match here
# | %i.addr = alloca i32, align 4
# | ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/clang/test/CodeGenOpenCL/cl20-device-side-enqueue-attributes.cl:70:17: error: SPIR32-NEXT: expected string not found in input
# | // SPIR32-NEXT: [[BLOCK_CAPTURE_ADDR:%.*]] = getelementptr inbounds <{ i32, i32, ptr addrspace(4), ptr addrspace(1), i32, ptr addrspace(1) }>, ptr addrspace(4) [[DOTBLOCK_DESCRIPTOR]], i32 0, i32 5
# | ^
# | <stdin>:71:69: note: scanning from here
# | store ptr addrspace(4) %.block_descriptor, ptr %block.addr, align 4
# | ^
# | <stdin>:71:69: note: with "DOTBLOCK_DESCRIPTOR" equal to "%.block_descriptor"
# | store ptr addrspace(4) %.block_descriptor, ptr %block.addr, align 4
# | ^
# | <stdin>:71:69: note: pattern attempts to capture variables: "BLOCK_CAPTURE_ADDR"
# | store ptr addrspace(4) %.block_descriptor, ptr %block.addr, align 4
# | ^
# | <stdin>:72:14: note: possible intended match here
# | %block.capture.addr = getelementptr inbounds nuw <{ i32, i32, ptr addrspace(4), ptr addrspace(1), i32, ptr addrspace(1) }>, ptr addrspace(4) %.block_descriptor, i32 0, i32 5
# | ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/clang/test/CodeGenOpenCL/cl20-device-side-enqueue-attributes.cl:165:12: error: SPIR32: expected string not found in input
# | // SPIR32: attributes #[[ATTR0]] = { convergent noinline norecurse nounwind optnone "denormal-fp-math-f32"="preserve-sign,preserve-sign" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "uniform-work-group-size"="true" }
# | ^
# | <stdin>:95:10: note: scanning from here
# | ret void
# | ^
# | <stdin>:95:10: note: with "ATTR0" equal to "0"
# | ret void
# | ^
# | <stdin>:100:1: note: possible intended match here
# | attributes #0 = { convergent noinline norecurse nounwind optnone denormal_fpenv(float: preservesign) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "uniform-work-group-size" }
# | ^
# |
# | Input file: <stdin>
# | Check file: /home/gha/actions-runner/_work/llvm-project/llvm-project/clang/test/CodeGenOpenCL/cl20-device-side-enqueue-attributes.cl
# |
# | -dump-input=help explains the following input dump.
# |
# | Input was:
# | <<<<<<
# | .
# | .
# | .
# | 8: ; Function Attrs: convergent noinline norecurse nounwind optnone denormal_fpenv(float: preservesign)
# | 9: define dso_local spir_kernel void @device_side_enqueue(ptr addrspace(1) align 4 %a, ptr addrspace(1) align 4 %b, i32 %i) #0 !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !3 !kernel_arg_base_type !3 !kernel_arg_type_qual !4 {
# | 10: entry:
# | 11: %a.addr = alloca ptr addrspace(1), align 4
# | 12: %b.addr = alloca ptr addrspace(1), align 4
# | 13: %i.addr = alloca i32, align 4
# | next:30'0 { search range start (exclusive)
# | next:30'1 error: no match found in search range
# | next:30'2 pattern attempts to capture variables: "DEFAULT_QUEUE"
# | 14: store ptr addrspace(1) %a, ptr %a.addr, align 4
# | 15: store ptr addrspace(1) %b, ptr %b.addr, align 4
# | 16: store i32 %i, ptr %i.addr, align 4
# | 17: %0 = load ptr addrspace(1), ptr %a.addr, align 4
# | 18: %1 = load ptr addrspace(1), ptr %b.addr, align 4
# | .
# | .
# | .
# | 24: ; Function Attrs: convergent noinline norecurse nounwind optnone denormal_fpenv(float: preservesign)
# | 25: define dso_local spir_func void @__clang_ocl_kern_imp_device_side_enqueue(ptr addrspace(1) align 4 %a, ptr addrspace(1) align 4 %b, i32 %i) #0 !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !3 !kernel_arg_base_type !3 !kernel_arg_type_qual !4 {
# | 26: entry:
# | 27: %a.addr = alloca ptr addrspace(1), align 4
# | 28: %b.addr = alloca ptr addrspace(1), align 4
# | 29: %i.addr = alloca i32, align 4
# | next:30'3 ? possible intended match
# | 30: %default_queue = alloca target("spirv.Queue"), align 4
# | 31: %flags = alloca i32, align 4
# | 32: %ndrange = alloca %struct.ndrange_t, align 4
# | 33: %tmp = alloca %struct.ndrange_t, align 4
# | 34: %block = alloca <{ i32, i32, ptr addrspace(4), ptr addrspace(1), i32, ptr addrspace(1) }>, align 4
# | .
# | .
# | .
# | 61:
# | 62: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
# | 63: declare void @llvm.memcpy.p0.p0.i32(ptr noalias writeonly captures(none), ptr noalias readonly captures(none), i32, i1 immarg) #1
# | 64:
# | 65: ; Function Attrs: convergent noinline nounwind optnone denormal_fpenv(float: preservesign)
# | 66: define internal spir_func void @__device_side_enqueue_block_invoke(ptr addrspace(4) %.block_descriptor) #2 {
# | next:30'4 } search range end (exclusive)
# | 67: entry:
# | 68: %.block_descriptor.addr = alloca ptr addrspace(4), align 4
# | 69: %block.addr = alloca ptr addrspace(4), align 4
# | 70: store ptr addrspace(4) %.block_descriptor, ptr %.block_descriptor.addr, align 4
# | 71: store ptr addrspace(4) %.block_descriptor, ptr %block.addr, align 4
# | next:70'0 { search range start (exclusive)
# | next:70'1 error: no match found in search range
# | next:70'2 with "DOTBLOCK_DESCRIPTOR" equal to "%.block_descriptor"
# | next:70'3 pattern attempts to capture variables: "BLOCK_CAPTURE_ADDR"
# | 72: %block.capture.addr = getelementptr inbounds nuw <{ i32, i32, ptr addrspace(4), ptr addrspace(1), i32, ptr addrspace(1) }>, ptr addrspace(4) %.block_descriptor, i32 0, i32 5
# | next:70'4 ? possible intended match
# | 73: %0 = load ptr addrspace(1), ptr addrspace(4) %block.capture.addr, align 4
# | 74: %block.capture.addr1 = getelementptr inbounds nuw <{ i32, i32, ptr addrspace(4), ptr addrspace(1), i32, ptr addrspace(1) }>, ptr addrspace(4) %.block_descriptor, i32 0, i32 4
# | 75: %1 = load i32, ptr addrspace(4) %block.capture.addr1, align 4
# | 76: %arrayidx = getelementptr inbounds float, ptr addrspace(1) %0, i32 %1
# | 77: %2 = load float, ptr addrspace(1) %arrayidx, align 4
# | .
# | .
# | .
# | 87:
# | 88: ; Function Attrs: nocallback nocreateundeforpoison nofree nosync nounwind speculatable willreturn memory(none)
# | 89: declare float @llvm.fmuladd.f32(float, float, float) #3
# | 90:
# | 91: ; Function Attrs: convergent nounwind denormal_fpenv(float: preservesign)
# | 92: define spir_kernel void @__device_side_enqueue_block_invoke_kernel(ptr addrspace(4) %0) #4 {
# | next:70'5 } search range end (exclusive)
# | 93: entry:
# | 94: call spir_func void @__device_side_enqueue_block_invoke(ptr addrspace(4) %0)
# | 95: ret void
# | check:165'0 { search range start (exclusive)
# | check:165'1 error: no match found in search range
# | check:165'2 with "ATTR0" equal to "0"
# | 96: }
# | 97:
# | 98: declare spir_func i32 @__enqueue_kernel_basic(target("spirv.Queue"), i32, ptr, ptr addrspace(4), ptr addrspace(4))
# | 99:
# | 100: attributes #0 = { convergent noinline norecurse nounwind optnone denormal_fpenv(float: preservesign) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "uniform-work-group-size" }
# | check:165'3 ? possible intended match
# | 101: attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
# | 102: attributes #2 = { convergent noinline nounwind optnone denormal_fpenv(float: preservesign) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "uniform-work-group-size" }
# | 103: attributes #3 = { nocallback nocreateundeforpoison nofree nosync nounwind speculatable willreturn memory(none) }
# | 104: attributes #4 = { convergent nounwind denormal_fpenv(float: preservesign) "no-trapping-math"="true" "stack-protector-buffer-size"="8" }
# | 105: attributes #5 = { convergent nounwind "uniform-work-group-size" }
# | 106:
# | 107: !opencl.ocl.version = !{!0}
# | 108: !opencl.spir.version = !{!0}
# | 109:
# | 110: !0 = !{i32 2, i32 0}
# | 111: !1 = !{i32 1, i32 1, i32 0}
# | 112: !2 = !{!"none", !"none", !"none"}
# | 113: !3 = !{!"float*", !"float*", !
# | ...
# `---data was truncated (10240/10363) (change limit with -D output_limit=N)
# 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/209465
More information about the cfe-commits
mailing list