Issue |
129391
|
Summary |
compare-fp-4.c fails with -Os
|
Labels |
backend:Hexagon
|
Assignees |
|
Reporter |
androm3da
|
`compare-fp-4.c` from [llvm-test-suite](https://github.com/androm3da/llvm-test-suite/blob/b73ae5c1e7e72a7a616cd6f789e13d29e848a5fd/SingleSource/Regression/C/gcc-c-torture/execute/ieee/compare-fp-4.c) fails with -Os (but passes with -O2).
Test case reduced to
```
$ cat ../llvm-test-suite/SingleSource/Regression/C/gcc-c-torture/execute/ieee/compare-fp-4.c
extern void abort (void);
#define TEST(c) if ((c) != ok) abort ();
#define ORD(a, b) (((a) < (b)) || (a) >= (b))
#define UNEQ(a, b) (!LTGT ((a), (b)))
#define UNLT(a, b) (((a) < (b)) || __builtin_isunordered ((a), (b)))
#define UNGT(a, b) (((a) > (b)) || __builtin_isunordered ((a), (b)))
#define LTGT(a, b) (((a) < (b)) || (a) > (b))
float pinf;
float ninf;
float NaN;
int iltgt (float x, float y, int ok) {
TEST (!UNEQ (x, y));
TEST (LTGT (x, y));
TEST (ORD (x, y) && (UNLT (x, y) || UNGT (x,y)));
}
int main () {
pinf = __builtin_inf ();
ninf = -__builtin_inf ();
NaN = __builtin_nan ("");
iltgt (ninf, pinf, 1);
iltgt (NaN, NaN, 0);
return 0;
}
```
```
$ ../clang+llvm-21.0.0-cross-hexagon-unknown-linux-musl/x86_64-linux-gnu/bin/hexagon-unknown-linux-musl-clang -o fp4 ../llvm-test-suite/SingleSource/Regression/C/gcc-c-torture/execute/ieee/compare-fp-4.c -Wno-implicit-function-declaration -Os -DNDEBUG
$ ../clang+llvm-21.0.0-cross-hexagon-unknown-linux-musl/x86_64-linux-gnu/bin/qemu-hexagon -L ../clang+llvm-21.0.0-cross-hexagon-unknown-linux-musl/x86_64-linux-gnu/target/hexagon-unknown-linux-musl/usr/ ./fp4 ; echo $?
Aborted (core dumped)
134
$ /opt/clang+llvm-18.1.0-rc1-cross-hexagon-unknown-linux-musl/x86_64-linux-musl/bin/hexagon-unknown-linux-musl-clang -o fp4 ../llvm-test-suite/SingleSource/Regression/C/gcc-c-torture/execute/ieee/compare-fp-4.c -Wno-implicit-function-declaration -O2 -DNDEBUG
../llvm-test-suite/SingleSource/Regression/C/gcc-c-torture/execute/ieee/compare-fp-4.c:28:1: warning: non-void function does not return a value in all control paths [-Wreturn-type]
28 | }
| ^
1 warning generated.
$ ../clang+llvm-21.0.0-cross-hexagon-unknown-linux-musl/x86_64-linux-gnu/bin/qemu-hexagon -L ../clang+llvm-21.0.0-cross-hexagon-unknown-linux-musl/x86_64-linux-gnu/target/hexagon-unknown-linux-musl/usr/ ./fp4 ; echo $?
0
```
_______________________________________________
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs