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

Andrew Pinski <pinskia at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
         Resolution|---                         |FIXED
   Target Milestone|---                         |8.0
             Status|NEW                         |RESOLVED

--- Comment #8 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
GCC 5+ just produces a stack increment/decrement but no stores (unlike 4.9.x).
GCC 6+ is able to remove the stack increment/decrement.
GCC 7+ uses BIT_FIELD_REF on the gimple level.
GCC 8+ expands the BIT_FIELD_REF to use vec_select directly and get:
(insn 6 5 7 (set (reg:TI 90)
        (vec_select:TI (subreg:V2TI (reg/v:V4DF 88 [ x ]) 0)
            (parallel [
                    (const_int 0 [0])
                ]))) "/app/example.cpp":9 -1
     (nil))

So this is fully fixed for GCC 8+ with incremental steps along the way.

Reply via email to