blob: c5502390ccab22fe11f0d3f5631b9dfdca9e4aa3 [file] [log] [blame]
/* { dg-do compile } */
/* { dg-skip-if "" { *-*-* } { "-O0" "-O1" "-Og" } } */
/* { dg-options "-march=rv64gc_xtheadfmemidx" { target { rv64 } } } */
/* { dg-options "-march=rv32gc_xtheadfmemidx" { target { rv32 } } } */
typedef union {
double v;
unsigned w;
} my_t;
double z;
double foo (int i, int j)
{
if (j)
{
switch (i)
{
case 0:
return 1;
case 1:
return 0;
case 2:
return 3.0;
}
}
if (i == 1)
{
my_t u;
u.v = z;
u.w = 1;
z = u.v;
}
return z;
}
/* { dg-final { scan-assembler-not "th.lrd\t" } } */