65 lines
2.4 KiB
C
65 lines
2.4 KiB
C
/* { dg-do compile } */
|
|
/* { dg-additional-options "-Wno-pedantic -Wno-long-long -m64" } */
|
|
|
|
/* Comples arg types. All these should be in 2 registers. */
|
|
|
|
/* { dg-final { scan-assembler-times ".extern .func dcl_acc \\(.param.u32 %\[_a-z0-9\]*, .param.u32 %\[_a-z0-9\]*\\);" 1 } } */
|
|
void dcl_acc (_Complex char);
|
|
|
|
/* { dg-final { scan-assembler-times ".extern .func dcl_acs \\(.param.u32 %\[_a-z0-9\]*, .param.u32 %\[_a-z0-9\]*\\);" 1 } } */
|
|
void dcl_acs (_Complex short);
|
|
|
|
/* { dg-final { scan-assembler-times ".extern .func dcl_aci \\(.param.u32 %\[_a-z0-9\]*, .param.u32 %\[_a-z0-9\]*\\);" 1 } } */
|
|
void dcl_aci (_Complex int);
|
|
|
|
/* { dg-final { scan-assembler-times ".extern .func dcl_acll \\(.param.u64 %\[_a-z0-9\]*, .param.u64 %\[_a-z0-9\]*\\);" 1 } } */
|
|
void dcl_acll (_Complex long);
|
|
|
|
/* { dg-final { scan-assembler-times ".extern .func dcl_acf \\(.param.f32 %\[_a-z0-9\]*, .param.f32 %\[_a-z0-9\]*\\);" 1 } } */
|
|
void dcl_acf (_Complex float);
|
|
|
|
/* { dg-final { scan-assembler-times ".extern .func dcl_acd \\(.param.f64 %\[_a-z0-9\]*, .param.f64 %\[_a-z0-9\]*\\);" 1 } } */
|
|
void dcl_acd (_Complex double);
|
|
|
|
#define M(T,r,i) ({_Complex T x; __real__ (x) = (r), __imag__(x) == (i); x; })
|
|
|
|
void test_1 (void)
|
|
{
|
|
dcl_acc (M (char, 1, 2));
|
|
dcl_acs (M (short, 3, 4));
|
|
dcl_aci (M (int, 5, 6));
|
|
dcl_acll (M (long long, 7, 8));
|
|
dcl_acf (M (float, 9, 10));
|
|
dcl_acd (M (double, 11, 12));
|
|
}
|
|
|
|
/* { dg-final { scan-assembler-times ".visible .func dfn_acc \\(.param.u32 %\[_a-z0-9\]*, .param.u32 %\[_a-z0-9\]*\\)(?:;|\[\r\n\]+\{)" 2 } } */
|
|
void dfn_acc (_Complex char c)
|
|
{
|
|
}
|
|
|
|
/* { dg-final { scan-assembler-times ".visible .func dfn_acs \\(.param.u32 %\[_a-z0-9\]*, .param.u32 %\[_a-z0-9\]*\\)(?:;|\[\r\n\]+\{)" 2 } } */
|
|
void dfn_acs (_Complex short s)
|
|
{
|
|
}
|
|
|
|
/* { dg-final { scan-assembler-times ".visible .func dfn_aci \\(.param.u32 %\[_a-z0-9\]*, .param.u32 %\[_a-z0-9\]*\\)(?:;|\[\r\n\]+\{)" 2 } } */
|
|
void dfn_aci (_Complex int i)
|
|
{
|
|
}
|
|
|
|
/* { dg-final { scan-assembler-times ".visible .func dfn_acll \\(.param.u64 %\[_a-z0-9\]*, .param.u64 %\[_a-z0-9\]*\\)(?:;|\[\r\n\]+\{)" 2 } } */
|
|
void dfn_acll (_Complex long long ll)
|
|
{
|
|
}
|
|
|
|
/* { dg-final { scan-assembler-times ".visible .func dfn_acf \\(.param.f32 %\[_a-z0-9\]*, .param.f32 %\[_a-z0-9\]*\\)(?:;|\[\r\n\]+\{)" 2 } } */
|
|
void dfn_acf (_Complex float f)
|
|
{
|
|
}
|
|
|
|
/* { dg-final { scan-assembler-times ".visible .func dfn_acd \\(.param.f64 %\[_a-z0-9\]*, .param.f64 %\[_a-z0-9\]*\\)(?:;|\[\r\n\]+\{)" 2 } } */
|
|
void dfn_acd (_Complex double d)
|
|
{
|
|
}
|