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

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

           What    |Removed                     |Added
----------------------------------------------------------------------------
           See Also|                            |https://gcc.gnu.org/bugzill
                   |                            |a/show_bug.cgi?id=107601

--- Comment #4 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
x86_64 defines SLOW_BYTE_ACCESS which caues some (if not all) of the issues
here:
```
;; _3 = bf.c;

(insn 9 8 10 (parallel [
            (set (reg:DI 106)
                (lshiftrt:DI (reg/v:DI 104 [ bf ])
                    (const_int 32 [0x20])))
            (clobber (reg:CC 17 flags))
        ]) "/app/example.cpp":5:58 -1
     (nil))

(insn 10 9 0 (parallel [
            (set (reg:HI 100 [ _3 ])
                (and:HI (subreg:HI (reg:DI 106) 0)
                    (const_int 1023 [0x3ff])))
            (clobber (reg:CC 17 flags))
        ]) "/app/example.cpp":5:58 -1
     (nil))

;; _4 = (unsigned int) _3;

(insn 11 10 0 (set (reg:SI 101 [ _4 ])
        (zero_extend:SI (reg:HI 100 [ _3 ]))) "/app/example.cpp":5:46 -1
     (nil))
```
Uses HImode (short) here due to SLOW_BYTE_ACCESS being defined rather than the
SImode (int).

Reply via email to