[llvm] InstCombine: Use SimplifyDemandedFPClass on fmul (PR #177490)

via llvm-commits llvm-commits at lists.llvm.org
Thu Jan 22 15:53:45 PST 2026


github-actions[bot] wrote:

<!--PREMERGE ADVISOR COMMENT: Windows-->
# :window: Windows x64 Test Results

* 130098 tests passed
* 2880 tests skipped
* 1 test failed

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

### Clang
<details>
<summary>Clang.CodeGen/SystemZ/builtins-systemz-zvector.c</summary>

```
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 2
c:\_work\llvm-project\llvm-project\build\bin\clang.exe -cc1 -internal-isystem C:\_work\llvm-project\llvm-project\build\lib\clang\23\include -nostdsysteminc -target-cpu z13 -triple s390x-linux-gnu  -O2 -fzvector -flax-vector-conversions=none  -Wall -Wno-unused -Werror -emit-llvm C:\_work\llvm-project\llvm-project\clang\test\CodeGen\SystemZ\builtins-systemz-zvector.c -o - | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\clang\test\CodeGen\SystemZ\builtins-systemz-zvector.c
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\clang.exe' -cc1 -internal-isystem 'C:\_work\llvm-project\llvm-project\build\lib\clang\23\include' -nostdsysteminc -target-cpu z13 -triple s390x-linux-gnu -O2 -fzvector -flax-vector-conversions=none -Wall -Wno-unused -Werror -emit-llvm 'C:\_work\llvm-project\llvm-project\clang\test\CodeGen\SystemZ\builtins-systemz-zvector.c' -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\clang\test\CodeGen\SystemZ\builtins-systemz-zvector.c'
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\clang\test\CodeGen\SystemZ\builtins-systemz-zvector.c:4815:12: error: CHECK: expected string not found in input
# |  // CHECK: fmul <2 x double> [[VAL]], splat (double 5.000000e-01)
# |            ^
# | <stdin>:9172:50: note: scanning from here
# |  %conv.i34 = sitofp <2 x i64> %20 to <2 x double>
# |                                                  ^
# | <stdin>:9172:50: note: with "VAL" equal to "%conv.i34"
# |  %conv.i34 = sitofp <2 x i64> %20 to <2 x double>
# |                                                  ^
# | <stdin>:9194:13: note: possible intended match here
# |  %mul.i45 = fmul <2 x double> %26, splat (double 2.000000e+00)
# |             ^
# | 
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\clang\test\CodeGen\SystemZ\builtins-systemz-zvector.c
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |               .
# |               .
# |               .
# |            9167:  store volatile <2 x double> %conv.i36, ptr @vd, align 8, !tbaa !9 
# |            9168:  %19 = load volatile <2 x i64>, ptr @vul, align 8, !tbaa !9 
# |            9169:  %conv.i42 = uitofp <2 x i64> %19 to <2 x double> 
# |            9170:  store volatile <2 x double> %conv.i42, ptr @vd, align 8, !tbaa !9 
# |            9171:  %20 = load volatile <2 x i64>, ptr @vsl, align 8, !tbaa !9 
# |            9172:  %conv.i34 = sitofp <2 x i64> %20 to <2 x double> 
# | check:4815'0                                                      X error: no match found
# | check:4815'1                                                        with "VAL" equal to "%conv.i34"
# |            9173:  %mul.i35 = fmul nnan <2 x double> %conv.i34, splat (double 5.000000e-01) 
# | check:4815'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            9174:  store volatile <2 x double> %mul.i35, ptr @vd, align 8, !tbaa !9 
# | check:4815'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            9175:  %21 = load volatile <2 x i64>, ptr @vul, align 8, !tbaa !9 
# | check:4815'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            9176:  %conv.i40 = uitofp <2 x i64> %21 to <2 x double> 
# | check:4815'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            9177:  %mul.i41 = fmul nnan <2 x double> %conv.i40, splat (double 5.000000e-01) 
# | check:4815'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |               .
# |               .
# |               .
# |            9189:  store volatile <2 x i64> %conv1.i48, ptr @vsl, align 8, !tbaa !9 
# | check:4815'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            9190:  %25 = load volatile <2 x double>, ptr @vd, align 8, !tbaa !9 
# | check:4815'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            9191:  %conv1.i54 = fptoui <2 x double> %25 to <2 x i64> 
# | check:4815'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            9192:  store volatile <2 x i64> %conv1.i54, ptr @vul, align 8, !tbaa !9 
# | check:4815'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            9193:  %26 = load volatile <2 x double>, ptr @vd, align 8, !tbaa !9 
# | check:4815'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            9194:  %mul.i45 = fmul <2 x double> %26, splat (double 2.000000e+00) 
# | check:4815'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | check:4815'2                 ?                                                   possible intended match
# |            9195:  %conv1.i46 = fptosi <2 x double> %mul.i45 to <2 x i64> 
# | check:4815'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            9196:  store volatile <2 x i64> %conv1.i46, ptr @vsl, align 8, !tbaa !9 
# | check:4815'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            9197:  %27 = load volatile <2 x double>, ptr @vd, align 8, !tbaa !9 
# | check:4815'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            9198:  %mul.i51 = fmul <2 x double> %27, splat (double 2.000000e+00) 
# | check:4815'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            9199:  %conv1.i52 = fptoui <2 x double> %mul.i51 to <2 x i64> 
# | check:4815'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/177490


More information about the llvm-commits mailing list