https://gcc.gnu.org/bugzilla/show_bug.cgi?id=126180

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|---                         |14.5
          Component|target                      |middle-end
   Last reconfirmed|                            |2026-07-09
                 CC|                            |jsm28 at gcc dot gnu.org
     Ever confirmed|0                           |1
             Status|UNCONFIRMED                 |NEW

--- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> ---
Confirmed.  There's a single double typed constant in the initializer:

 <constructor 0x7ffff69dd678
    type <vector_type 0x7ffff69ccb28 __m512
        type <real_type 0x7ffff68252a0 float SF
            size <integer_cst 0x7ffff681f1e0 constant 32>
            unit-size <integer_cst 0x7ffff681f1f8 constant 4>
            align:32 warn_if_not_align:0 symtab:0 alias-set 2 canonical-type
0x7ffff68252a0 precision:32
            pointer_to_this <pointer_type 0x7ffff6825930>>
        sizes-gimplified BLK
        size <integer_cst 0x7ffff681f660 constant 512>
        unit-size <integer_cst 0x7ffff69ac690 constant 64>
        align:512 warn_if_not_align:0 symtab:0 alias-set -1 canonical-type
0x7ffff69cc9d8
        attributes <tree_list 0x7ffff69cb988
            purpose <identifier_node 0x7ffff69fc140 may_alias>> nunits:16>
    constant static length:16
    idx <integer_cst 0x7ffff681f018 type <integer_type 0x7ffff681d0a8
bitsizetype> constant 0>
    val <real_cst 0x7ffff681c0f0 type <real_type 0x7ffff68252a0 float>
...
    idx <integer_cst 0x7ffff69dd558 type <integer_type 0x7ffff681d0a8
bitsizetype> constant 15>
    val <nop_expr 0x7ffff69beca0 type <real_type 0x7ffff68252a0 float>
        constant
        arg:0 <real_cst 0x7ffff681c3c0 type <real_type 0x7ffff6825348 double>
            constant
1.000000000000000055511151231257827021181583404541015625e-1>>>

since this is a runtime initializer we shouldn't have gimplified it to

  try
    {
      v = *.LC0;
      out = v;
    }
  finally
    {
      v = {CLOBBER(eos)};
    }

we do have to reflect the current rounding mode for non-static initializer
IIRC.

Reply via email to