/* { dg-do compile } */ /* { dg-options "-march=rv32gc_xtheadbb" { target { rv32 } } } */ /* { dg-options "-march=rv64gc_xtheadbb" { target { rv64 } } } */ /* { dg-skip-if "" { *-*-* } { "-O0" "-Os" "-Og" } } */ unsigned long zext64_32(unsigned int u32) { return u32; //th.extu a0, a0, 31, 0 } unsigned long zext64_16(unsigned short u16) { return u16; } unsigned long zext64_8(unsigned char u8) { return u8; } unsigned int zext32_64(unsigned long u64) { return u64; } unsigned int zext32_16(unsigned short u16) { return u16; } unsigned int zext32_8(unsigned char u8) { return u8; } unsigned short zext16_64(unsigned long u64) { return u64; } unsigned short zext16_32(unsigned int u32) { return u32; } unsigned short zext16_8(unsigned char u8) { return u8; } unsigned char zext8_64(unsigned long u64) { return u64; } unsigned char zext8_32(unsigned int u32) { return u32; } unsigned char zext8_16(unsigned short u16) { return u16; } /* { dg-final { scan-assembler-not {\mslli} } } */ /* { dg-final { scan-assembler-not {\msrli} } } */