diff options
author | Matt Arsenault <Matthew.Arsenault@amd.com> | 2022-11-03 18:26:59 -0700 |
---|---|---|
committer | Matt Arsenault <Matthew.Arsenault@amd.com> | 2022-11-07 07:16:47 -0800 |
commit | 0f68ffe1e2b2d4b518aebe14709aff253658cfb2 (patch) | |
tree | 79b62311cb57167cd564618c474a134994f39cb1 /flang/lib/Frontend/CompilerInvocation.cpp | |
parent | b9b74fc6e98a6e9bd50a1882b839419c9a6577b2 (diff) | |
download | llvm-0f68ffe1e2b2d4b518aebe14709aff253658cfb2.zip llvm-0f68ffe1e2b2d4b518aebe14709aff253658cfb2.tar.gz llvm-0f68ffe1e2b2d4b518aebe14709aff253658cfb2.tar.bz2 |
InstCombine: Fold compare with smallest normal if input denormals are flushed
Try to simplify comparisons with the smallest normalized value. If
denormals will be treated as 0, we can simplify by using an equality
comparison with 0.
fcmp olt fabs(x), smallest_normalized_number -> fcmp oeq x, 0.0
fcmp ult fabs(x), smallest_normalized_number -> fcmp ueq x, 0.0
fcmp oge fabs(x), smallest_normalized_number -> fcmp one x, 0.0
fcmp ult fabs(x), smallest_normalized_number -> fcmp ueq x, 0.0
The device libraries have a few range checks that look like
this for denormal handling paths.
Diffstat (limited to 'flang/lib/Frontend/CompilerInvocation.cpp')
0 files changed, 0 insertions, 0 deletions