From bd7ed0974fe634e0001a6132528a76d24b5e024f Mon Sep 17 00:00:00 2001 From: Peter Bergner Date: Fri, 6 Nov 2020 16:49:37 -0600 Subject: [PATCH] rs6000: Use the correct minimized testcase Use the correct minimized test case source rather than the large test source. gcc/testsuite/ * gcc.target/powerpc/pr64505.c: Run everywhere. Use correct minimized test case. --- gcc/testsuite/gcc.target/powerpc/pr64505.c | 265 ++++----------------- 1 file changed, 43 insertions(+), 222 deletions(-) diff --git a/gcc/testsuite/gcc.target/powerpc/pr64505.c b/gcc/testsuite/gcc.target/powerpc/pr64505.c index 8601f2d7e9f..42b961f3df5 100644 --- a/gcc/testsuite/gcc.target/powerpc/pr64505.c +++ b/gcc/testsuite/gcc.target/powerpc/pr64505.c @@ -1,231 +1,52 @@ -/* { dg-do compile { target { powerpc*-*-* && ilp32 } } } */ +/* { dg-do compile } */ /* { dg-skip-if "" { powerpc*-*-aix* } } */ -/* { dg-options "-O2 -mpowerpc64" } */ +/* { dg-options "-w -O2 -mpowerpc64" } */ /* - * (below is inlined and simplified from previously included headers) + * (below is minimized test case) */ -struct fltcom_st { - short fltbuf[950]; -} fltcom_ __attribute__((common)) ; -#define CM_PLIBOR (*(((double *)&fltcom_ + 1))) -#define CM_QMRG (*(((double *)&fltcom_ + 2))) +extern double pow(double x, double y); +extern long func (); +short global0, global1; +static int i0, i1, i2, i3, i4, i5; +double dbl, *array0, *array1; -struct fltcom2_st { - short fltbuf2[56]; -} fltcom2_ __attribute__((common)) ; -#define CM_FLPRV ((short *)&fltcom2_ + 17) -#define CM_FLNXT ((short *)&fltcom2_ + 20) -#define CM_FLCPN (*(((double *)&fltcom2_))) -#define CM_FLCNT (*(((short *)&fltcom2_ + 12))) - -struct aidatcm_st { - double cm_aid, cm_ext, cm_basis; - short cm_aiday, cm_exday, cm_dperd, cm_aiexf, cm_aidex, cm_aiok, - cm_aigdo, cm_aildo, cm_prev[3], cm_next[3], cm_aid_pad[2]; - double cm_rvgfact, cm_ai1st, cm_ai2nd; - int cm_aieurok; -} aidatcm_ __attribute__((common)) ; -#define CM_EXDAY aidatcm_.cm_exday -#define CM_BASIS aidatcm_.cm_basis -#define CM_PREV aidatcm_.cm_prev - -struct cshfcm_st { - short bufff[10862]; -} cshfcm_ __attribute__((common)) ; -#define CM_FNUM (*(((short *)&cshfcm_ + 9038))) -#define CM_FIFLX ((double *)&cshfcm_ + 1) -#define CM_FEXTX ((double *)&cshfcm_ + 1201) -#define CM_FSHDT ((short *)&cshfcm_ + 7230) - -struct calctsdb_st { - short calctsdbbuff[115]; -} calctsdb_ __attribute__((common)) ; -#define CM_CTUP_GOOD_TO_GO (*(((short *)&calctsdb_ + 16))) -#define CM_PAYMENT_FREQUENCY (*(((short *)&calctsdb_ + 61))) -#define CM_DISCOUNTING_DAYTYP (*(((short *)&calctsdb_ + 59))) - -struct cf600cm_st { - short bufcf[14404]; -} cf600cm_ __attribute__((common)) ; -#define CM_FLT_RFIXRATES ((double *)&cf600cm_ + 600) - -typedef struct { int id; int type; const char *name; } bregdb_bitinfo_t; - -int -bregdb_eval_bbitcxt_bool_rv(const bregdb_bitinfo_t * const bbit, - const int bbit_default, - const void * const bregucxt); - -static const bregdb_bitinfo_t bbit_calc_dr_d33 = - { 160667, 5, "bbit_calc_dr_d33" }; -#define bbit_calc_dr_d33__value() \ - bregdb_eval_bbitcxt_bool_rv(&bbit_calc_dr_d33, 0, 0) -static const bregdb_bitinfo_t bbit_calc_sx_b24 = - { 158854, 5, "bbit_calc_sx_b24" }; -#define bbit_calc_sx_b24__value() \ - bregdb_eval_bbitcxt_bool_rv(&bbit_calc_sx_b24, 0, 0) -static const bregdb_bitinfo_t bbit_calc_dr_d36 = - { 161244, 5, "bbit_calc_dr_d36" }; -#define bbit_calc_dr_d36__value() \ - bregdb_eval_bbitcxt_bool_rv(&bbit_calc_dr_d36, 0, 0) -static const bregdb_bitinfo_t bbit_calc_dr_d37 = - { 161315, 5, "bbit_calc_dr_d37" }; -#define bbit_calc_dr_d37__value() \ - bregdb_eval_bbitcxt_bool_rv(&bbit_calc_dr_d37, 0, 0) -static const bregdb_bitinfo_t bbit_calc_dr_d47 = - { 163259, 5, "bbit_calc_dr_d47" }; -#define bbit_calc_dr_d47__value() \ - bregdb_eval_bbitcxt_bool_rv(&bbit_calc_dr_d47, 0, 0) -static const bregdb_bitinfo_t bbit_calc_dr_d46 = - { 163239, 5, "bbit_calc_dr_d46" }; -#define bbit_calc_dr_d46__value() \ - bregdb_eval_bbitcxt_bool_rv(&bbit_calc_dr_d46, 0, 0) -static const bregdb_bitinfo_t bbit_calc_dr_d62 = - { 166603, 5, "bbit_calc_dr_d62" }; -#define bbit_calc_dr_d62__value() \ - bregdb_eval_bbitcxt_bool_rv(&bbit_calc_dr_d62, 0, 0) - - - -int dtyp_is_actact_(short *daytyp); -double rnd_trunc_numb(double in, short num_digits, short rnd_or_trunc); -void datetrn_(const short* dt, short* dt2); -short difday_(short* daytyp_in, short* srtdti, short* enddti, short* ercode); - - -double pow(double x, double y); - - -/* - * (above is inlined and simplified from previously included headers) - */ - - -void calc_1566( - short sCalcType, - short sDayType, - short sFreq, - short asSettleDt[3], - short asMtyDt[3], - short asIssueDt[3], - short asFCpnDt[3], - double dCpn, - short *psNoPer, - double *pdExt, - double *pdAI, - double *pdAI2, - double *pdFCpn, - short *psRcode) +void +pr64505 (short *arg0, double *arg1) { - - short ercode = 0; - int isactact; - short days_to_next_cpn = 0; - const short discDaytype = CM_DISCOUNTING_DAYTYP; - - if(bbit_calc_sx_b24__value()) - isactact = (dtyp_is_actact_(&sDayType) != 0); - else - isactact = (sDayType == 1 || sDayType == 10); - - short days_in_current_period = difday_(&sDayType,CM_FLPRV,CM_FLNXT,&ercode); - const short sfreq1 = (CM_CTUP_GOOD_TO_GO == 1 && CM_PAYMENT_FREQUENCY == 1); - - for (int j = 0; j < CM_FNUM; j++) { - - if(j == 0) { - days_to_next_cpn = difday_(&sDayType,asSettleDt,CM_FLNXT,&ercode); - - if(isactact) { - CM_FIFLX[j] = CM_FLCPN / sFreq; - CM_FEXTX[j] = (double)days_to_next_cpn / (double)days_in_current_period; - } - else { - CM_FIFLX[j] = CM_FLCPN * days_in_current_period; - CM_FEXTX[j] = (double)days_to_next_cpn / (double)(1/sfreq1); - } - - if(CM_FNUM == 1) { - CM_FEXTX[j] = (double)days_to_next_cpn / ((double)1/sfreq1); - } - } - else { - - short days_from_settle, days_in_period; - - if(bbit_calc_dr_d46__value()){ - days_from_settle = difday_(&sDayType,asSettleDt, - &CM_FSHDT[j*3],&ercode); - days_in_period = difday_(&sDayType,&CM_FSHDT[(j-1)*3], - &CM_FSHDT[j*3],&ercode); - } - - double cpn_rate = CM_PLIBOR; - - if(bbit_calc_dr_d62__value()) { - if(j < CM_FLCNT && CM_FLT_RFIXRATES[j] != 0) cpn_rate = CM_FLT_RFIXRATES[j]; - } - else { - if(j < CM_FLCNT ) cpn_rate = CM_FLT_RFIXRATES[j]; - } - - if(bbit_calc_dr_d37__value()&& j >= CM_FLCNT && sCalcType == 1570) { - cpn_rate = CM_PLIBOR + CM_QMRG; - - if(bbit_calc_dr_d36__value()){ - double projected_rate = pow((1 + CM_PLIBOR/100.0), - (days_in_period)) - 1; - - projected_rate = projected_rate + CM_QMRG/100.0 * days_in_period; - cpn_rate = 100 * projected_rate * (1/days_in_period); - } - } - - - if(isactact) { - CM_FIFLX[j] = cpn_rate / sFreq; - CM_FEXTX[j] = CM_FEXTX[j-1] + 1; - - if(bbit_calc_dr_d46__value() && discDaytype != 0) { - CM_FEXTX[j] = (double)days_from_settle / (double)(1/sfreq1); - } - } - else { - if(!bbit_calc_dr_d46__value()){ - days_from_settle = difday_(&sDayType,asSettleDt, - &CM_FSHDT[j*3],&ercode); - days_in_period = difday_(&sDayType,&CM_FSHDT[(j-1)*3], - &CM_FSHDT[j*3],&ercode); - - } - - CM_FIFLX[j] = cpn_rate * days_in_period; - CM_FEXTX[j] = (double)days_from_settle / (double)(1/sfreq1); - } - - } - - if(bbit_calc_dr_d33__value() && CM_CTUP_GOOD_TO_GO != 0) { - CM_FIFLX[j] = rnd_trunc_numb (CM_FIFLX[j], 0, 0); - } - + int error = 0; + short num = func (&global1 + 15, &error); + for (int j = 0; j < array0[0]; j++) + { + if (j == 0) + { + func (arg0, &global1 + 20, &error); + array0[0] = num; + } + else + { + double cr = (&dbl)[1]; + if (func (&i4)) + func (0, &(&array0)[j]); + if (func (&i5)) + { + if ((&global1)[12]) + cr = array1[j]; + } + if (func (&i2) + && (&global1)[12]) + { + if (func (&i1)) + pow ((&dbl)[1], 2); + } + array0[j] = cr; + } + if (func (&i0) && global0) + func (((short *) array0 + 1)[j]); } - - - short accrued_days = difday_(&sDayType,CM_FLPRV,asSettleDt,&ercode); - - if(!bbit_calc_dr_d47__value()) { - if(isactact) { - *pdAI = (CM_FLCPN / sFreq)* accrued_days / ((double)days_in_current_period); - } - else{ - *pdAI = (CM_FLCPN / sFreq)* accrued_days / ((double)1/sFreq); - } - } - - CM_EXDAY = days_to_next_cpn; - CM_BASIS = days_in_current_period; - datetrn_(CM_FLPRV,CM_PREV); + short ad = func (&global1 + 15, 0); + if (func (&i3) && func ()) + *arg1 = *((double *) &global1) * ad; + func (&global1 + 15); } -- 2.30.2