1 /* { dg-do compile } */ 2 /* { dg-options "-O3 -march=z900 -mzarch" } */ 3 4 #include <stdint.h> 5 6 uint16_t u16; 7 8 uint16_t foo16a(uint16_t a)9foo16a (uint16_t a) 10 { 11 return __builtin_bswap16 (a); 12 } 13 /* { dg-final { scan-assembler-times "lrvr\t%r2,%r\[0-9\]*" 1 } } */ 14 15 uint16_t foo16b()16foo16b () 17 { 18 return __builtin_bswap16 (u16); 19 } 20 /* { dg-final { scan-assembler-times "lrvh\t%r2,0\\(%r\[0-9\]*\\)" 1 } } */ 21 22 void foo16c(uint16_t a)23foo16c (uint16_t a) 24 { 25 u16 = __builtin_bswap16 (a); 26 } 27 /* { dg-final { scan-assembler-times "strvh\t%r2,0\\(%r\[0-9\]*\\)" 1 } } */ 28