/* { dg-do compile } */ /* { dg-options "-O2 -march=rv64gc_zba -mabi=lp64" } */ unsigned long foo(unsigned int a, unsigned long b) { a = a << 1; unsigned long c = (unsigned long) a; unsigned long d = b + (c<<2); return d; } /* { dg-final { scan-assembler "sh2add.uw" } } */ /* { dg-final { scan-assembler-not "zext" } } */