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

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

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Target|x86_64-*-*, i?86-*-*        |x86_64-*-*, i?86-*-*,
                   |                            |aarch64-linux-gnu
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|                            |2020-02-25
          Component|tree-optimization           |middle-end
   Target Milestone|---                         |10.0
     Ever confirmed|0                           |1

--- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
  vector(8) char16_t vect__20.10; //8*2 = 16 bytes

  vect__19.9_55 = MEM <vector(16) char> [(vector(32) char *)&seq];
  vect__20.10_56 = [vec_unpack_lo_expr] vect__19.9_55;
  vect__20.10_57 = [vec_unpack_hi_expr] vect__19.9_55;
  MEM <vector(8) char16_t> [(char16_t *)&out] = vect__20.10_56;
  MEM <vector(8) char16_t> [(char16_t *)&out + 16B] = vect__20.10_57;

  vect__20.15_63 = MEM <vector(2) char> [(vector(32) char *)&seq + 16B];
  vect__33.16_58 = (vector(2) char16_t) vect__20.15_63;
  MEM <vector(2) char16_t> [(char16_t *)&out + 32B] = vect__33.16_58;


;; MEM <vector(2) char16_t> [(char16_t *)&out + 32B] = vect__33.16_58;

(insn 165 164 166 (set (reg:SI 251)
        (sign_extend:SI (mem/c:HI (plus:DI (reg/f:DI 77 virtual-stack-vars)
                    (const_int -80 [0xffffffffffffffb0])) [0 MEM <vector(2)
char> [(vector(32) char *)&seq + 16B]+0 S2 A128]))) "t87656.c":14:14 -1
     (nil))

(insn 166 165 0 (set (mem/c:SI (plus:DI (reg/f:DI 77 virtual-stack-vars)
                (const_int -32 [0xffffffffffffffe0])) [1 MEM <vector(2)
char16_t> [(char16_t *)&out + 32B]+0 S4 A256])
        (reg:SI 251)) "t87656.c":14:14 -1
     (nil))

HuH?  We get this bad code also on aarch64-linux-gnu.

Reply via email to