[llvm-branch-commits] [clang] [Clang][CIR] Implement CIRGen logic for __builtin_bit_cast (PR #176782)

via llvm-branch-commits llvm-branch-commits at lists.llvm.org
Mon Jan 19 10:17:47 PST 2026


github-actions[bot] wrote:

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

* 86404 tests passed
* 751 tests skipped
* 2 tests failed

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

### Clang
<details>
<summary>Clang.CIR/CodeGen/builtin-bit-cast.cpp</summary>

```
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 1
/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/23/include -nostdsysteminc -std=c++20 -fclangir -emit-cir /home/gha/actions-runner/_work/llvm-project/llvm-project/clang/test/CIR/CodeGen/builtin-bit-cast.cpp  -o - | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck --check-prefix=CIR /home/gha/actions-runner/_work/llvm-project/llvm-project/clang/test/CIR/CodeGen/builtin-bit-cast.cpp
# 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/23/include -nostdsysteminc -std=c++20 -fclangir -emit-cir /home/gha/actions-runner/_work/llvm-project/llvm-project/clang/test/CIR/CodeGen/builtin-bit-cast.cpp -o -
# 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=CIR /home/gha/actions-runner/_work/llvm-project/llvm-project/clang/test/CIR/CodeGen/builtin-bit-cast.cpp
# note: command had no output on stdout or stderr
# 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/23/include -nostdsysteminc -std=c++20 -fclangir -emit-llvm /home/gha/actions-runner/_work/llvm-project/llvm-project/clang/test/CIR/CodeGen/builtin-bit-cast.cpp -o - | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck --check-prefixes=LLVM,LLVM-VIA-CIR /home/gha/actions-runner/_work/llvm-project/llvm-project/clang/test/CIR/CodeGen/builtin-bit-cast.cpp
# 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/23/include -nostdsysteminc -std=c++20 -fclangir -emit-llvm /home/gha/actions-runner/_work/llvm-project/llvm-project/clang/test/CIR/CodeGen/builtin-bit-cast.cpp -o -
# note: command had no output on stdout or stderr
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck --check-prefixes=LLVM,LLVM-VIA-CIR /home/gha/actions-runner/_work/llvm-project/llvm-project/clang/test/CIR/CodeGen/builtin-bit-cast.cpp
# note: command had no output on stdout or stderr
# RUN: at line 3
/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/23/include -nostdsysteminc -std=c++20           -emit-llvm /home/gha/actions-runner/_work/llvm-project/llvm-project/clang/test/CIR/CodeGen/builtin-bit-cast.cpp -o - | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck --check-prefixes=LLVM,LLVM-DIRECT /home/gha/actions-runner/_work/llvm-project/llvm-project/clang/test/CIR/CodeGen/builtin-bit-cast.cpp
# 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/23/include -nostdsysteminc -std=c++20 -emit-llvm /home/gha/actions-runner/_work/llvm-project/llvm-project/clang/test/CIR/CodeGen/builtin-bit-cast.cpp -o -
# note: command had no output on stdout or stderr
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck --check-prefixes=LLVM,LLVM-DIRECT /home/gha/actions-runner/_work/llvm-project/llvm-project/clang/test/CIR/CodeGen/builtin-bit-cast.cpp
# .---command stderr------------
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/clang/test/CIR/CodeGen/builtin-bit-cast.cpp:63:16: error: LLVM-LABEL: expected string not found in input
# | // LLVM-LABEL: define dso_local{{.*}} %struct.two_floats @_Z21test_aggregate_recordR8two_ints
# |                ^
# | <stdin>:20:69: note: scanning from here
# | define dso_local noundef i64 @_Z24test_aggregate_to_scalarR8two_ints(ptr noundef nonnull align 4 dereferenceable(8) %ti) #0 {
# |                                                                     ^
# | <stdin>:30:1: note: possible intended match here
# | define dso_local <2 x float> @_Z21test_aggregate_recordR8two_ints(ptr noundef nonnull align 4 dereferenceable(8) %ti) #1 {
# | ^
# | 
# | Input file: <stdin>
# | Check file: /home/gha/actions-runner/_work/llvm-project/llvm-project/clang/test/CIR/CodeGen/builtin-bit-cast.cpp
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |             .
# |             .
# |             .
# |            15:  %1 = load float, ptr %0, align 4 
# |            16:  ret float %1 
# |            17: } 
# |            18:  
# |            19: ; Function Attrs: mustprogress noinline nounwind optnone 
# |            20: define dso_local noundef i64 @_Z24test_aggregate_to_scalarR8two_ints(ptr noundef nonnull align 4 dereferenceable(8) %ti) #0 { 
# | label:63'0                                                                         X~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ error: no match found
# |            21: entry: 
# | label:63'0     ~~~~~~~
# |            22:  %ti.addr = alloca ptr, align 8 
# | label:63'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            23:  store ptr %ti, ptr %ti.addr, align 8 
# | label:63'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            24:  %0 = load ptr, ptr %ti.addr, align 8, !nonnull !2, !align !3 
# | label:63'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            25:  %1 = load i64, ptr %0, align 4 
# | label:63'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            26:  ret i64 %1 
# | label:63'0     ~~~~~~~~~~~~
# |            27: } 
# | label:63'0     ~~
# |            28:  
# | label:63'0     ~
# |            29: ; Function Attrs: mustprogress noinline nounwind optnone 
# | label:63'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            30: define dso_local <2 x float> @_Z21test_aggregate_recordR8two_ints(ptr noundef nonnull align 4 dereferenceable(8) %ti) #1 { 
# | label:63'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | label:63'1     ?                                                                                                                           possible intended match
# |            31: entry: 
# | label:63'0     ~~~~~~~
# |            32:  %retval = alloca %struct.two_floats, align 4 
# | label:63'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            33:  %ti.addr = alloca ptr, align 8 
# | label:63'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            34:  store ptr %ti, ptr %ti.addr, align 8 
# | label:63'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            35:  %0 = load ptr, ptr %ti.addr, align 8, !nonnull !2, !align !3 
# | label:63'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             .
# |             .
# |             .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1

--

```
</details>
<details>
<summary>Clang.CIR/CodeGen/builtin-bit-cast.cpp</summary>

```
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 1
/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/23/include -nostdsysteminc -std=c++20 -fclangir -emit-cir /home/gha/actions-runner/_work/llvm-project/llvm-project/clang/test/CIR/CodeGen/builtin-bit-cast.cpp  -o - | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck --check-prefix=CIR /home/gha/actions-runner/_work/llvm-project/llvm-project/clang/test/CIR/CodeGen/builtin-bit-cast.cpp
# 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/23/include -nostdsysteminc -std=c++20 -fclangir -emit-cir /home/gha/actions-runner/_work/llvm-project/llvm-project/clang/test/CIR/CodeGen/builtin-bit-cast.cpp -o -
# 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=CIR /home/gha/actions-runner/_work/llvm-project/llvm-project/clang/test/CIR/CodeGen/builtin-bit-cast.cpp
# note: command had no output on stdout or stderr
# 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/23/include -nostdsysteminc -std=c++20 -fclangir -emit-llvm /home/gha/actions-runner/_work/llvm-project/llvm-project/clang/test/CIR/CodeGen/builtin-bit-cast.cpp -o - | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck --check-prefixes=LLVM,LLVM-VIA-CIR /home/gha/actions-runner/_work/llvm-project/llvm-project/clang/test/CIR/CodeGen/builtin-bit-cast.cpp
# 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/23/include -nostdsysteminc -std=c++20 -fclangir -emit-llvm /home/gha/actions-runner/_work/llvm-project/llvm-project/clang/test/CIR/CodeGen/builtin-bit-cast.cpp -o -
# note: command had no output on stdout or stderr
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck --check-prefixes=LLVM,LLVM-VIA-CIR /home/gha/actions-runner/_work/llvm-project/llvm-project/clang/test/CIR/CodeGen/builtin-bit-cast.cpp
# note: command had no output on stdout or stderr
# RUN: at line 3
/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/23/include -nostdsysteminc -std=c++20           -emit-llvm /home/gha/actions-runner/_work/llvm-project/llvm-project/clang/test/CIR/CodeGen/builtin-bit-cast.cpp -o - | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck --check-prefixes=LLVM,LLVM-DIRECT /home/gha/actions-runner/_work/llvm-project/llvm-project/clang/test/CIR/CodeGen/builtin-bit-cast.cpp
# 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/23/include -nostdsysteminc -std=c++20 -emit-llvm /home/gha/actions-runner/_work/llvm-project/llvm-project/clang/test/CIR/CodeGen/builtin-bit-cast.cpp -o -
# note: command had no output on stdout or stderr
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck --check-prefixes=LLVM,LLVM-DIRECT /home/gha/actions-runner/_work/llvm-project/llvm-project/clang/test/CIR/CodeGen/builtin-bit-cast.cpp
# .---command stderr------------
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/clang/test/CIR/CodeGen/builtin-bit-cast.cpp:63:16: error: LLVM-LABEL: expected string not found in input
# | // LLVM-LABEL: define dso_local{{.*}} %struct.two_floats @_Z21test_aggregate_recordR8two_ints
# |                ^
# | <stdin>:20:69: note: scanning from here
# | define dso_local noundef i64 @_Z24test_aggregate_to_scalarR8two_ints(ptr noundef nonnull align 4 dereferenceable(8) %ti) #0 {
# |                                                                     ^
# | <stdin>:30:1: note: possible intended match here
# | define dso_local <2 x float> @_Z21test_aggregate_recordR8two_ints(ptr noundef nonnull align 4 dereferenceable(8) %ti) #1 {
# | ^
# | 
# | Input file: <stdin>
# | Check file: /home/gha/actions-runner/_work/llvm-project/llvm-project/clang/test/CIR/CodeGen/builtin-bit-cast.cpp
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |             .
# |             .
# |             .
# |            15:  %1 = load float, ptr %0, align 4 
# |            16:  ret float %1 
# |            17: } 
# |            18:  
# |            19: ; Function Attrs: mustprogress noinline nounwind optnone 
# |            20: define dso_local noundef i64 @_Z24test_aggregate_to_scalarR8two_ints(ptr noundef nonnull align 4 dereferenceable(8) %ti) #0 { 
# | label:63'0                                                                         X~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ error: no match found
# |            21: entry: 
# | label:63'0     ~~~~~~~
# |            22:  %ti.addr = alloca ptr, align 8 
# | label:63'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            23:  store ptr %ti, ptr %ti.addr, align 8 
# | label:63'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            24:  %0 = load ptr, ptr %ti.addr, align 8, !nonnull !2, !align !3 
# | label:63'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            25:  %1 = load i64, ptr %0, align 4 
# | label:63'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            26:  ret i64 %1 
# | label:63'0     ~~~~~~~~~~~~
# |            27: } 
# | label:63'0     ~~
# |            28:  
# | label:63'0     ~
# |            29: ; Function Attrs: mustprogress noinline nounwind optnone 
# | label:63'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            30: define dso_local <2 x float> @_Z21test_aggregate_recordR8two_ints(ptr noundef nonnull align 4 dereferenceable(8) %ti) #1 { 
# | label:63'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | label:63'1     ?                                                                                                                           possible intended match
# |            31: entry: 
# | label:63'0     ~~~~~~~
# |            32:  %retval = alloca %struct.two_floats, align 4 
# | label:63'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            33:  %ti.addr = alloca ptr, align 8 
# | label:63'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            34:  store ptr %ti, ptr %ti.addr, align 8 
# | label:63'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            35:  %0 = load ptr, ptr %ti.addr, align 8, !nonnull !2, !align !3 
# | label:63'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/176782


More information about the llvm-branch-commits mailing list