[llvm-branch-commits] [llvm] InstCombine: Fold known-qnan results to a literal nan (PR #176123)

via llvm-branch-commits llvm-branch-commits at lists.llvm.org
Thu Jan 15 09:30:40 PST 2026


github-actions[bot] wrote:

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

* 168121 tests passed
* 2990 tests skipped
* 7 tests failed

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

### LLVM
<details>
<summary>LLVM.Transforms/InstCombine/simplify-demanded-fpclass-exp.ll</summary>

```
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 2
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/opt -S -passes=instcombine < /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/InstCombine/simplify-demanded-fpclass-exp.ll | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/InstCombine/simplify-demanded-fpclass-exp.ll
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/opt -S -passes=instcombine
# 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/llvm/test/Transforms/InstCombine/simplify-demanded-fpclass-exp.ll
# .---command stderr------------
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/InstCombine/simplify-demanded-fpclass-exp.ll:493:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: ret float 0x7FF8000000000000
# |               ^
# | <stdin>:225:109: note: scanning from here
# | define nofpclass(nzero) float @source_is_known_qnan(float nofpclass(snan inf zero sub norm) %must.be.qnan) {
# |                                                                                                             ^
# | <stdin>:226:2: note: possible intended match here
# |  ret float %must.be.qnan
# |  ^
# | 
# | Input file: <stdin>
# | Check file: /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/InstCombine/simplify-demanded-fpclass-exp.ll
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |             .
# |             .
# |             .
# |           220:  
# |           221: define nofpclass(nzero) float @source_is_known_snan(float nofpclass(qnan inf zero sub norm) %must.be.snan) { 
# |           222:  ret float %must.be.snan 
# |           223: } 
# |           224:  
# |           225: define nofpclass(nzero) float @source_is_known_qnan(float nofpclass(snan inf zero sub norm) %must.be.qnan) { 
# | next:493'0                                                                                                                 X error: no match found
# |           226:  ret float %must.be.qnan 
# | next:493'0     ~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:493'1      ?                        possible intended match
# |           227: } 
# | next:493'0     ~~
# |           228:  
# | next:493'0     ~
# |           229: define nofpclass(nan pzero) float @source_is_known_zero_or_nan__nnan_result(float nofpclass(inf sub norm) %must.be.zero.or.nan) { 
# | next:493'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           230:  ret float 1.000000e+00 
# |           231: } 
# |             .
# |             .
# |             .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1

--

```
</details>
<details>
<summary>LLVM.Transforms/InstCombine/simplify-demanded-fpclass-extractelement.ll</summary>

```
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 2
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/opt -S -passes=instcombine < /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/InstCombine/simplify-demanded-fpclass-extractelement.ll | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/InstCombine/simplify-demanded-fpclass-extractelement.ll
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/opt -S -passes=instcombine
# 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/llvm/test/Transforms/InstCombine/simplify-demanded-fpclass-extractelement.ll
# .---command stderr------------
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/InstCombine/simplify-demanded-fpclass-extractelement.ll:20:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: ret half 0xH7E00
# |               ^
# | <stdin>:13:114: note: scanning from here
# | define nofpclass(snan inf zero sub norm) half @ret_only_qnan__extractelement_unknown(<4 x half> %vec, i32 %idx) {
# |                                                                                                                  ^
# | <stdin>:15:2: note: possible intended match here
# |  ret half %ext
# |  ^
# | 
# | Input file: <stdin>
# | Check file: /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/InstCombine/simplify-demanded-fpclass-extractelement.ll
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |            .
# |            .
# |            .
# |            8: define nofpclass(inf zero sub norm) half @ret_only_nan__extractelement_unknown(<4 x half> %vec, i32 %idx) { 
# |            9:  %ext = extractelement <4 x half> %vec, i32 %idx 
# |           10:  ret half %ext 
# |           11: } 
# |           12:  
# |           13: define nofpclass(snan inf zero sub norm) half @ret_only_qnan__extractelement_unknown(<4 x half> %vec, i32 %idx) { 
# | next:20'0                                                                                                                      X error: no match found
# |           14:  %ext = extractelement <4 x half> %vec, i32 %idx 
# | next:20'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           15:  ret half %ext 
# | next:20'0     ~~~~~~~~~~~~~~~
# | next:20'1      ?              possible intended match
# |           16: } 
# | next:20'0     ~~
# |           17:  
# | next:20'0     ~
# |           18: define nofpclass(qnan inf zero sub norm) half @ret_only_snan__extractelement_unknown(<4 x half> %vec, i32 %idx) { 
# | next:20'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           19:  %ext = extractelement <4 x half> %vec, i32 %idx 
# |           20:  ret half %ext 
# |            .
# |            .
# |            .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1

--

```
</details>
<details>
<summary>LLVM.Transforms/InstCombine/simplify-demanded-fpclass-fptrunc-round.ll</summary>

```
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 2
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/opt -S -passes=instcombine < /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/InstCombine/simplify-demanded-fpclass-fptrunc-round.ll | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/InstCombine/simplify-demanded-fpclass-fptrunc-round.ll
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/opt -S -passes=instcombine
# 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/llvm/test/Transforms/InstCombine/simplify-demanded-fpclass-fptrunc-round.ll
# .---command stderr------------
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/InstCombine/simplify-demanded-fpclass-fptrunc-round.ll:43:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: ret half 0xH7E00
# |               ^
# | <stdin>:47:82: note: scanning from here
# | define nofpclass(snan inf zero sub norm) half @ret_only_qnan__fptrunc(float %x) {
# |                                                                                  ^
# | <stdin>:49:2: note: possible intended match here
# |  ret half %result
# |  ^
# | 
# | Input file: <stdin>
# | Check file: /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/InstCombine/simplify-demanded-fpclass-fptrunc-round.ll
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |            .
# |            .
# |            .
# |           42: define nofpclass(qnan inf zero sub norm) half @ret_only_snan__fptrunc(float %x) { 
# |           43:  %result = call half @llvm.fptrunc.round.f16.f32(float %x, metadata !"round.downward") 
# |           44:  ret half %result 
# |           45: } 
# |           46:  
# |           47: define nofpclass(snan inf zero sub norm) half @ret_only_qnan__fptrunc(float %x) { 
# | next:43'0                                                                                      X error: no match found
# |           48:  %result = call half @llvm.fptrunc.round.f16.f32(float %x, metadata !"round.downward") 
# | next:43'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           49:  ret half %result 
# | next:43'0     ~~~~~~~~~~~~~~~~~~
# | next:43'1      ?                 possible intended match
# |           50: } 
# | next:43'0     ~~
# |           51:  
# | next:43'0     ~
# |           52: define nofpclass(inf zero sub norm) half @ret_only_nan__fptrunc(float %x) { 
# | next:43'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           53:  %result = call half @llvm.fptrunc.round.f16.f32(float %x, metadata !"round.downward") 
# |           54:  ret half %result 
# |            .
# |            .
# |            .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1

--

```
</details>
<details>
<summary>LLVM.Transforms/InstCombine/simplify-demanded-fpclass-fptrunc.ll</summary>

```
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 2
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/opt -S -passes=instcombine < /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/InstCombine/simplify-demanded-fpclass-fptrunc.ll | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/InstCombine/simplify-demanded-fpclass-fptrunc.ll
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/opt -S -passes=instcombine
# 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/llvm/test/Transforms/InstCombine/simplify-demanded-fpclass-fptrunc.ll
# .---command stderr------------
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/InstCombine/simplify-demanded-fpclass-fptrunc.ll:43:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: ret half 0xH7E00
# |               ^
# | <stdin>:47:82: note: scanning from here
# | define nofpclass(snan inf zero sub norm) half @ret_only_qnan__fptrunc(float %x) {
# |                                                                                  ^
# | <stdin>:49:2: note: possible intended match here
# |  ret half %result
# |  ^
# | 
# | Input file: <stdin>
# | Check file: /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/InstCombine/simplify-demanded-fpclass-fptrunc.ll
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |            .
# |            .
# |            .
# |           42: define nofpclass(qnan inf zero sub norm) half @ret_only_snan__fptrunc(float %x) { 
# |           43:  %result = fptrunc float %x to half 
# |           44:  ret half %result 
# |           45: } 
# |           46:  
# |           47: define nofpclass(snan inf zero sub norm) half @ret_only_qnan__fptrunc(float %x) { 
# | next:43'0                                                                                      X error: no match found
# |           48:  %result = fptrunc float %x to half 
# | next:43'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           49:  ret half %result 
# | next:43'0     ~~~~~~~~~~~~~~~~~~
# | next:43'1      ?                 possible intended match
# |           50: } 
# | next:43'0     ~~
# |           51:  
# | next:43'0     ~
# |           52: define nofpclass(inf zero sub norm) half @ret_only_nan__fptrunc(float %x) { 
# | next:43'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           53:  %result = fptrunc float %x to half 
# |           54:  ret half %result 
# |            .
# |            .
# |            .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1

--

```
</details>
<details>
<summary>LLVM.Transforms/InstCombine/simplify-demanded-fpclass-frexp.ll</summary>

```
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 2
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/opt -S -passes=instcombine < /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/InstCombine/simplify-demanded-fpclass-frexp.ll | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/InstCombine/simplify-demanded-fpclass-frexp.ll
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/opt -S -passes=instcombine
# 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/llvm/test/Transforms/InstCombine/simplify-demanded-fpclass-frexp.ll
# .---command stderr------------
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/InstCombine/simplify-demanded-fpclass-frexp.ll:317:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: [[FREXP:%.*]] = call { half, i32 } @llvm.frexp.f16.i32(half [[UNKNOWN]])
# |               ^
# | <stdin>:168:40: note: scanning from here
# |  %only.qnan = call half @returns_qnan()
# |                                        ^
# | <stdin>:168:40: note: with "UNKNOWN" equal to "%unknown"
# |  %only.qnan = call half @returns_qnan()
# |                                        ^
# | <stdin>:170:3: note: possible intended match here
# |  %frexp = call { half, i32 } @llvm.frexp.f16.i32(half %select)
# |   ^
# | 
# | Input file: <stdin>
# | Check file: /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/InstCombine/simplify-demanded-fpclass-frexp.ll
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |             .
# |             .
# |             .
# |           163:  %frexp.mant = extractvalue { half, i32 } %frexp, 0 
# |           164:  ret half %frexp.mant 
# |           165: } 
# |           166:  
# |           167: define nofpclass(qnan) half @ret_nofpclass_qnan__frexp_select_unknown_qnan(i1 %cond, half %unknown) { 
# |           168:  %only.qnan = call half @returns_qnan() 
# | next:317'0                                            X error: no match found
# | next:317'1                                              with "UNKNOWN" equal to "%unknown"
# |           169:  %select = select i1 %cond, half %unknown, half %only.qnan 
# | next:317'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           170:  %frexp = call { half, i32 } @llvm.frexp.f16.i32(half %select) 
# | next:317'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:317'2       ?                                                             possible intended match
# |           171:  %frexp.mant = extractvalue { half, i32 } %frexp, 0 
# | next:317'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           172:  ret half %frexp.mant 
# | next:317'0     ~~~~~~~~~~~~~~~~~~~~~~
# |           173: } 
# | next:317'0     ~~
# |           174:  
# | next:317'0     ~
# |           175: define nofpclass(nan) half @ret_nofpclass_nan__frexp_select_unknown_nan(i1 %cond, half %unknown) { 
# | next:317'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             .
# |             .
# |             .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1

--

```
</details>
<details>
<summary>LLVM.Transforms/InstCombine/simplify-demanded-fpclass-insertelement.ll</summary>

```
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 2
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/opt -S -passes=instcombine < /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/InstCombine/simplify-demanded-fpclass-insertelement.ll | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/InstCombine/simplify-demanded-fpclass-insertelement.ll
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/opt -S -passes=instcombine
# 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/llvm/test/Transforms/InstCombine/simplify-demanded-fpclass-insertelement.ll
# .---command stderr------------
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/InstCombine/simplify-demanded-fpclass-insertelement.ll:32:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: ret <4 x half> splat (half 0xH7E00)
# |               ^
# | <stdin>:22:131: note: scanning from here
# | define nofpclass(snan inf zero sub norm) <4 x half> @ret_only_qnan__insert_unknown_unknown(<4 x half> %vec, half %elt, i32 %idx) {
# |                                                                                                                                   ^
# | <stdin>:23:21: note: possible intended match here
# |  %insert = insertelement <4 x half> %vec, half %elt, i32 %idx
# |                     ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/InstCombine/simplify-demanded-fpclass-insertelement.ll:162:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: [[INSERT:%.*]] = insertelement <4 x half> splat (half 0xH7E00), half [[UNKNOWN_ELT]], i32 [[IDX]]
# |               ^
# | <stdin>:80:43: note: scanning from here
# |  %nan.vec = call <4 x half> @returns_nan()
# |                                           ^
# | <stdin>:80:43: note: with "UNKNOWN_ELT" equal to "%unknown.elt"
# |  %nan.vec = call <4 x half> @returns_nan()
# |                                           ^
# | <stdin>:80:43: note: with "IDX" equal to "%idx"
# |  %nan.vec = call <4 x half> @returns_nan()
# |                                           ^
# | <stdin>:81:2: note: possible intended match here
# |  %insert = insertelement <4 x half> %nan.vec, half %unknown.elt, i32 %idx
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/InstCombine/simplify-demanded-fpclass-insertelement.ll:177:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: [[INSERT:%.*]] = insertelement <4 x half> [[UNKNOWN_VEC]], half 0xH7E00, i32 [[IDX]]
# |               ^
# | <stdin>:87:41: note: scanning from here
# |  %nan.elt = call half @returns_nan_f16()
# |                                         ^
# | <stdin>:87:41: note: with "UNKNOWN_VEC" equal to "%unknown.vec"
# |  %nan.elt = call half @returns_nan_f16()
# |                                         ^
# | <stdin>:87:41: note: with "IDX" equal to "%idx"
# |  %nan.elt = call half @returns_nan_f16()
# |                                         ^
# | <stdin>:88:3: note: possible intended match here
# |  %insert = insertelement <4 x half> %unknown.vec, half %nan.elt, i32 %idx
# |   ^
# | 
# | Input file: <stdin>
# | Check file: /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/InstCombine/simplify-demanded-fpclass-insertelement.ll
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |             .
# |             .
# |             .
# |            17: define nofpclass(qnan inf zero sub norm) <4 x half> @ret_only_snan__insert_unknown_unknown(<4 x half> %vec, half %elt, i32 %idx) { 
# |            18:  %insert = insertelement <4 x half> %vec, half %elt, i32 %idx 
# |            19:  ret <4 x half> %insert 
# |            20: } 
# |            21:  
# |            22: define nofpclass(snan inf zero sub norm) <4 x half> @ret_only_qnan__insert_unknown_unknown(<4 x half> %vec, half %elt, i32 %idx) { 
# | next:32'0                                                                                                                                        X error: no match found
# |            23:  %insert = insertelement <4 x half> %vec, half %elt, i32 %idx 
# | next:32'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:32'1                          ?                                          possible intended match
# |            24:  ret <4 x half> %insert 
# | next:32'0      ~~~~~~~~~~~~~~~~~~~~~~~~
# |            25: } 
# | next:32'0      ~~
# |            26:  
# | next:32'0      ~
# |            27: define nofpclass(nan zero sub norm) <4 x half> @ret_only_inf__insert_unknown_unknown(<4 x half> %vec, half %elt, i32 %idx) { 
# | next:32'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            28:  %insert = insertelement <4 x half> %vec, half %elt, i32 %idx 
# |             .
# |             .
# |             .
# |            75:  %insert = insertelement <vscale x 4 x half> %unknown.vec, half %unknown.elt, i32 %idx 
# |            76:  ret <vscale x 4 x half> %insert 
# |            77: } 
# |            78:  
# |            79: define nofpclass(snan) <4 x half> @insert_unknown_taints_known_nan_vector_input(half %unknown.elt, i32 %idx) { 
# |            80:  %nan.vec = call <4 x half> @returns_nan() 
# | next:162'0                                               X error: no match found
# | next:162'1                                                 with "UNKNOWN_ELT" equal to "%unknown.elt"
# | next:162'2                                                 with "IDX" equal to "%idx"
# |            81:  %insert = insertelement <4 x half> %nan.vec, half %unknown.elt, i32 %idx 
# | next:162'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:162'3      ?                                                                         possible intended match
# |            82:  %exp = call <4 x half> @llvm.exp.v4f16(<4 x half> %insert) 
# | next:162'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            83:  ret <4 x half> %exp 
# | next:162'0     ~~~~~~~~~~~~~~~~~~~~~
# |            84: } 
# | next:162'0     ~~
# |            85:  
# | next:162'0     ~
# |            86: define nofpclass(snan) <4 x half> @insert_unknown_vector_taints_known_nan_vector_insert(<4 x half> %unknown.vec, i32 %idx) { 
# | next:162'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            87:  %nan.elt = call half @returns_nan_f16() 
# | next:177'0                                             X error: no match found
# | next:177'1                                               with "UNKNOWN_VEC" equal to "%unknown.vec"
# | next:177'2                                               with "IDX" equal to "%idx"
# |            88:  %insert = insertelement <4 x half> %unknown.vec, half %nan.elt, i32 %idx 
# | next:177'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:177'3       ?                                                                        possible intended match
# |            89:  %exp = call <4 x half> @llvm.exp.v4f16(<4 x half> %insert) 
# | next:177'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            90:  ret <4 x half> %exp 
# | next:177'0     ~~~~~~~~~~~~~~~~~~~~~
# |            91: } 
# | next:177'0     ~~
# |            92:  
# | next:177'0     ~
# |            93: ; Function Attrs: nocallback nocreateundeforpoison nofree nosync nounwind speculatable willreturn memory(none) 
# | next:177'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             .
# |             .
# |             .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1

--

```
</details>
<details>
<summary>LLVM.Transforms/InstCombine/simplify-demanded-fpclass-shufflevector.ll</summary>

```
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 2
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/opt -S -passes=instcombine < /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/InstCombine/simplify-demanded-fpclass-shufflevector.ll | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/InstCombine/simplify-demanded-fpclass-shufflevector.ll
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/opt -S -passes=instcombine
# 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/llvm/test/Transforms/InstCombine/simplify-demanded-fpclass-shufflevector.ll
# .---command stderr------------
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/InstCombine/simplify-demanded-fpclass-shufflevector.ll:31:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: ret <4 x half> splat (half 0xH7E00)
# |               ^
# | <stdin>:20:128: note: scanning from here
# | define nofpclass(snan inf zero sub norm) <4 x half> @ret_only_qnan__shufflevector_unknown(<4 x half> %vec0, <4 x half> %vec1) {
# |                                                                                                                                ^
# | <stdin>:22:2: note: possible intended match here
# |  ret <4 x half> %shuffle
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/InstCombine/simplify-demanded-fpclass-shufflevector.ll:244:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: [[SHUFFLE:%.*]] = shufflevector <4 x half> <half 0xH7E00, half 0xH7E00, half poison, half 0xH7E00>, <4 x half> [[UNKNOWN]], <4 x i32> <i32 5, i32 0, i32 1, i32 3>
# |               ^
# | <stdin>:117:39: note: scanning from here
# |  %nan = call <4 x half> @returns_nan()
# |                                       ^
# | <stdin>:117:39: note: with "UNKNOWN" equal to "%unknown"
# |  %nan = call <4 x half> @returns_nan()
# |                                       ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/InstCombine/simplify-demanded-fpclass-shufflevector.ll:259:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: [[SHUFFLE:%.*]] = shufflevector <4 x half> [[UNKNOWN]], <4 x half> <half poison, half 0xH7E00, half poison, half poison>, <4 x i32> <i32 5, i32 0, i32 1, i32 3>
# |               ^
# | <stdin>:124:39: note: scanning from here
# |  %nan = call <4 x half> @returns_nan()
# |                                       ^
# | <stdin>:124:39: note: with "UNKNOWN" equal to "%unknown"
# |  %nan = call <4 x half> @returns_nan()
# |                                       ^
# | 
# | Input file: <stdin>
# | Check file: /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/InstCombine/simplify-demanded-fpclass-shufflevector.ll
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |             .
# |             .
# |             .
# |            15: define nofpclass(qnan inf zero sub norm) <4 x half> @ret_only_snan__shufflevector_unknown(<4 x half> %vec0, <4 x half> %vec1) { 
# |            16:  %shuffle = shufflevector <4 x half> %vec0, <4 x half> %vec1, <4 x i32> <i32 6, i32 2, i32 3, i32 0> 
# |            17:  ret <4 x half> %shuffle 
# |            18: } 
# |            19:  
# |            20: define nofpclass(snan inf zero sub norm) <4 x half> @ret_only_qnan__shufflevector_unknown(<4 x half> %vec0, <4 x half> %vec1) { 
# | next:31'0                                                                                                                                     X error: no match found
# |            21:  %shuffle = shufflevector <4 x half> %vec0, <4 x half> %vec1, <4 x i32> <i32 6, i32 2, i32 3, i32 0> 
# | next:31'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            22:  ret <4 x half> %shuffle 
# | next:31'0      ~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:31'1       ?                        possible intended match
# |            23: } 
# | next:31'0      ~~
# |            24:  
# | next:31'0      ~
# |            25: define nofpclass(nan inf sub norm) <4 x half> @ret_only_zero__shufflevector_unknown(<4 x half> %vec0, <4 x half> %vec1) { 
# | next:31'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            26:  %shuffle = shufflevector <4 x half> %vec0, <4 x half> %vec1, <4 x i32> <i32 6, i32 2, i32 3, i32 0> 
# |            27:  ret <4 x half> %shuffle 
# |             .
# |             .
# |             .
# |           112:  %splat = shufflevector <4 x half> %select.vec, <4 x half> poison, <4 x i32> zeroinitializer 
# |           113:  ret <4 x half> %splat 
# |           114: } 
# |           115:  
# |           116: define nofpclass(snan) <4 x half> @ret_nonnan_rhs_taints_known_nan_result(i1 %cond, <4 x half> %unknown) { 
# |           117:  %nan = call <4 x half> @returns_nan() 
# | next:244'0                                           X error: no match found
# | next:244'1                                             with "UNKNOWN" equal to "%unknown"
# |           118:  %shuffle = shufflevector <4 x half> %nan, <4 x half> %unknown, <4 x i32> <i32 5, i32 0, i32 1, i32 3> 
# | next:244'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           119:  %exp = call <4 x half> @llvm.exp.v4f16(<4 x half> %shuffle) 
# | next:244'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           120:  ret <4 x half> %exp 
# | next:244'0     ~~~~~~~~~~~~~~~~~~~~~
# |           121: } 
# | next:244'0     ~~
# |           122:  
# | next:244'0     ~
# |           123: define nofpclass(snan) <4 x half> @ret_nonnan_lhs_taints_known_nan_result(i1 %cond, <4 x half> %unknown) { 
# | next:244'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           124:  %nan = call <4 x half> @returns_nan() 
# | next:259'0                                           X error: no match found
# | next:259'1                                             with "UNKNOWN" equal to "%unknown"
# |           125:  %shuffle = shufflevector <4 x half> %unknown, <4 x half> %nan, <4 x i32> <i32 5, i32 0, i32 1, i32 3> 
# | next:259'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           126:  %exp = call <4 x half> @llvm.exp.v4f16(<4 x half> %shuffle) 
# | next:259'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           127:  ret <4 x half> %exp 
# | next:259'0     ~~~~~~~~~~~~~~~~~~~~~
# |           128: } 
# | next:259'0     ~~
# |           129:  
# | next:259'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/176123


More information about the llvm-branch-commits mailing list