1 /* { dg-options "(HAS_LXC1) -mhard-float -mno-lxc1-sxc1" } */
2 /* { dg-final { scan-assembler-not "\tldxc1\t" } } */
3 /* { dg-final { scan-assembler-not "\tsdxc1\t" } } */
5 #ifndef __mips_no_lxc1_sxc1
6 #error missing definition of __mips_no_lxc1_sxc1
9 double ldexp(double x
, int exp
);
16 typedef d_mat_struct d_mat_t
[1];
18 #define d_mat_entry(mat,i,j) (*((mat)->rows[i] + (j)))
20 double __attribute__((noinline
))
21 ldxc1_test (int kappa
, int zeros
, double ctt
, int* expo
, d_mat_t r
, double* s
)
29 if (kappa
> zeros
+ 1)
31 tmp
= d_mat_entry(r
, kappa
- 1, kappa
- 1) * ctt
;
32 tmp
= ldexp(tmp
, (expo
[kappa
- 1] - expo
[kappa2
]));
35 while ((kappa
>= zeros
+ 2) && (s
[kappa
- 1] <= tmp
));
50 double rows_data
[SIZE
][SIZE
] = {0};
53 for (int i
= 0; i
< SIZE
; i
++)
54 rows
[i
] = rows_data
[i
];
58 ldxc1_test(kappa
, zeros
, ctt
, expo
, r
, s
);