[PR81647][AARCH64] Fix handling of Unordered Comparisons in aarch64-simd.md
[official-gcc.git] / gcc / testsuite / gcc.target / aarch64 / csinv-1.c
blob8d44449f477f6f11508987046207908ea29311a9
1 /* { dg-do compile } */
2 /* { dg-options "-O2" } */
4 unsigned int
5 test_csinv32_condasn1(unsigned int w0,
6 unsigned int w1,
7 unsigned int w2,
8 unsigned int w3) {
9 unsigned int w4;
11 /* { dg-final { scan-assembler "csinv\tw\[0-9\]*.*ne" } } */
12 w4 = (w0 == w1) ? ~w3 : w2;
13 return w4;
16 unsigned int
17 test_csinv32_condasn2(unsigned int w0,
18 unsigned int w1,
19 unsigned int w2,
20 unsigned int w3) {
21 unsigned int w4;
23 /* { dg-final { scan-assembler "csinv\tw\[0-9\]*.*eq" } } */
24 w4 = (w0 == w1) ? w3 : ~w2;
25 return w4;
28 unsigned long long
29 test_csinv64_condasn1(unsigned long long x0,
30 unsigned long long x1,
31 unsigned long long x2,
32 unsigned long long x3) {
33 unsigned long long x4;
35 /* { dg-final { scan-assembler "csinv\tx\[0-9\]*.*ne" } } */
36 x4 = (x0 == x1) ? ~x3 : x2;
37 return x4;
40 unsigned long long
41 test_csinv64_condasn2(unsigned long long x0,
42 unsigned long long x1,
43 unsigned long long x2,
44 unsigned long long x3) {
45 unsigned long long x4;
47 /* { dg-final { scan-assembler "csinv\tx\[0-9\]*.*eq" } } */
48 x4 = (x0 == x1) ? x3 : ~x2;
49 return x4;