Mercurial > hg > CbC > CbC_gcc
view gcc/testsuite/gcc.dg/tree-ssa/pr24627.c @ 158:494b0b89df80 default tip
...
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Mon, 25 May 2020 18:13:55 +0900 |
parents | 04ced10e8804 |
children |
line wrap: on
line source
/* { dg-do run } */ /* { dg-options "-O" } */ /* { dg-require-effective-target int32plus } */ extern void abort (void); typedef unsigned int u_int32; typedef struct { union {u_int32 Xl_ui;} Ul_i; union {u_int32 Xl_uf;} Ul_f; } l_fp; void dolfptoa (short ndec) { l_fp work, ftmp; work.Ul_i.Xl_ui = 0; work.Ul_f.Xl_uf = 0x535f3d8; while (ndec > 0) { u_int32 lo_tmp; u_int32 hi_tmp; ndec--; work.Ul_i.Xl_ui = 0; work.Ul_i.Xl_ui <<= 1; if ((work.Ul_f.Xl_uf) & 0x80000000) (work.Ul_i.Xl_ui) |= 0x1; (work.Ul_f.Xl_uf) <<= 1; ftmp = work; (work.Ul_i.Xl_ui) <<= 1; if ((work.Ul_f.Xl_uf) & 0x80000000) (work.Ul_i.Xl_ui) |= 0x1; (work.Ul_f.Xl_uf) <<= 1; (work.Ul_i.Xl_ui) <<= 1; if ((work.Ul_f.Xl_uf) & 0x80000000) (work.Ul_i.Xl_ui) |= 0x1; (work.Ul_f.Xl_uf) <<= 1; lo_tmp = ((work.Ul_f.Xl_uf) & 0xffff) + ((ftmp.Ul_f.Xl_uf) & 0xffff); hi_tmp = (((work.Ul_f.Xl_uf) >> 16) & 0xffff) + (((ftmp.Ul_f.Xl_uf) >> 16) & 0xffff); if (lo_tmp & 0x10000) hi_tmp++; (work.Ul_f.Xl_uf) = ((hi_tmp & 0xffff) << 16) | (lo_tmp & 0xffff); (work.Ul_i.Xl_ui) += (ftmp.Ul_i.Xl_ui); if (hi_tmp & 0x10000) (work.Ul_i.Xl_ui)++; if (!(work.Ul_i.Xl_ui < 10)) abort (); } } int main() { dolfptoa(6); return 0; }