blob: 5004735a2468650f7331cb91de689e447a77a6ef [file] [log] [blame]
/* { dg-do compile } */
/* { dg-options "-march=rv32gc_xtheadba" { target { rv32 } } } */
/* { dg-options "-march=rv64gc_xtheadba" { target { rv64 } } } */
/* { dg-skip-if "" { *-*-* } { "-O0" } } */
long
test_1 (long a, long b)
{
/* th.addsl aX, aX, 1 */
return a + (b << 1);
}
int
foos (short *x, int n)
{
/* th.addsl aX, aX, 1 */
return x[n];
}
long
test_2 (long a, long b)
{
/* th.addsl aX, aX, 2 */
return a + (b << 2);
}
int
fooi (int *x, int n)
{
/* th.addsl aX, aX, 2 */
return x[n];
}
long
test_3 (long a, long b)
{
/* th.addsl aX, aX, 3 */
return a + (b << 3);
}
long
fool (long *x, int n)
{
/* th.addsl aX, aX, 2 (rv32) */
/* th.addsl aX, aX, 3 (rv64) */
return x[n];
}
/* { dg-final { scan-assembler-times "th.addsl\[ \t\]*a\[0-9\]+,a\[0-9\]+,a\[0-9\]+,1" 2 } } */
/* { dg-final { scan-assembler-times "th.addsl\[ \t\]*a\[0-9\]+,a\[0-9\]+,a\[0-9\]+,2" 3 { target { rv32 } } } } */
/* { dg-final { scan-assembler-times "th.addsl\[ \t\]*a\[0-9\]+,a\[0-9\]+,a\[0-9\]+,2" 2 { target { rv64 } } } } */
/* { dg-final { scan-assembler-times "th.addsl\[ \t\]*a\[0-9\]+,a\[0-9\]+,a\[0-9\]+,3" 1 { target { rv32 } } } } */
/* { dg-final { scan-assembler-times "th.addsl\[ \t\]*a\[0-9\]+,a\[0-9\]+,a\[0-9\]+,3" 2 { target { rv64 } } } } */