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

--- Comment #4 from Segher Boessenkool <segher at gcc dot gnu.org> ---
On aarch64 we have (in expand):

;; i_4 = i_3 << 64;

(insn 10 9 11 (set (subreg:DI (reg/v:TI 94 [ i ]) 8)
        (subreg:DI (reg/v:TI 93 [ i ]) 0)) "100694.c":4:6 -1
     (nil))

(insn 11 10 0 (set (subreg:DI (reg/v:TI 94 [ i ]) 0)
        (const_int 0 [0])) "100694.c":4:6 -1
     (nil))

But on rs6000 we get:

;; i_4 = i_3 << 64;

(insn 10 9 11 (set (subreg:DI (reg/v:TI 119 [ i ]) 0)
        (ashift:DI (subreg:DI (reg/v:TI 118 [ i ]) 8)
            (const_int 0 [0]))) "100694.c":4:6 -1
     (nil))

(insn 11 10 0 (set (subreg:DI (reg/v:TI 119 [ i ]) 8)
        (const_int 0 [0])) "100694.c":4:6 -1
     (nil))

What the what.

Reply via email to