1 typedef unsigned short u16; 2 typedef unsigned int u32; 3 typedef unsigned long long u64; 4 5 static u16 swap16v(u16 a) 6 { 7 return __builtin_bswap16(a); 8 } 9 10 static u32 swap32v(u64 a) 11 { 12 return __builtin_bswap32(a); 13 } 14 15 static u64 swap64v(u32 a) 16 { 17 return __builtin_bswap64(a); 18 } 19 20 /* 21 * check-name: builtin-bswap 22 * check-command: test-linearize $file 23 * check-description: Check that the right builtin function is called, and 24 * that the args are correctly promoted or truncated. 25 * 26 * check-output-ignore 27 * check-output-contains:call.16 .* __builtin_bswap16 28 * check-output-contains:trunc.32 .* (64) %arg1 29 * check-output-contains:call.32 .* __builtin_bswap32 30 * check-output-contains:zext.64 .* (32) %arg1 31 * check-output-contains:call.64 .* __builtin_bswap64 32 */