PR inline-asm/84742
[official-gcc.git] / gcc / testsuite / gcc.target / s390 / bswap-1.c
blobedfcdf888c06b4f842b76d124cb4f2f08b0a9d2f
1 /* { dg-do compile } */
2 /* { dg-options "-O3 -march=z900 -mzarch" } */
4 #include <stdint.h>
6 uint64_t u64;
7 uint32_t u32;
8 uint16_t u16;
10 uint64_t
11 foo64a (uint64_t a)
13 return __builtin_bswap64 (a);
15 /* { dg-final { scan-assembler-times "lrvgr\t%r2,%r2" 1 { target lp64 } } } */
17 uint64_t
18 foo64b ()
20 return __builtin_bswap64 (u64);
22 /* { dg-final { scan-assembler-times "lrvg\t%r2,0\\(%r\[0-9\]*\\)" 1 { target lp64 } } } */
24 void
25 foo64c (uint64_t a)
27 u64 = __builtin_bswap64 (a);
29 /* { dg-final { scan-assembler-times "strvg\t%r2,0\\(%r\[0-9\]*\\)" 1 { target lp64 } } } */
33 uint32_t
34 foo32a (uint32_t a)
36 return __builtin_bswap32 (a);
38 /* { dg-final { scan-assembler-times "lrvr\t%r2,%r2" 1 } } */
40 uint32_t
41 foo32b ()
43 return __builtin_bswap32 (u32);
45 /* { dg-final { scan-assembler-times "lrv\t%r2,0\\(%r\[0-9\]*\\)" 1 } } */
47 void
48 foo32c (uint32_t a)
50 u32 = __builtin_bswap32 (a);
52 /* { dg-final { scan-assembler-times "strv\t%r2,0\\(%r\[0-9\]*\\)" 1 } } */