https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100253
--- Comment #3 from Hongtao.liu <crazylht at gmail dot com> --- (In reply to Andrew Pinski from comment #2) > The problem is right away in expand: > ;; vect__36.383_12 = MEM <vector(1) __int128 unsigned> [(char * > {ref-all})_10 + 16B]; > > (insn 23 22 0 (set (reg:V1TI 88 [ vect__36.383 ]) > (mem:V1TI (plus:DI (reg/f:DI 86 [ _10 ]) > (const_int 16 [0x10])) [0 MEM <vector(1) __int128 unsigned> > [(char * {ref-all})_10 + 16B]+0 S16 A128])) -1 > (nil)) > > > I think SLP did not mark the load as unaligned even though it knows it is > one: But gimple tree is marked as aligned. <mem_ref 0x7fffe94a72d0 type <vector_type 0x7fffe9a59150 type <integer_type 0x7fffea300a80 __int128 unsigned public unsigned type_6 TI size <integer_cst 0x7fffea2e2f00 constant 128> unit-size <integer_cst 0x7fffea2e2f18 constant 16> align:128 warn_if_not_align:0 symtab:0 alias-set -1 canonical-type 0x7fffea300a80 precision:128 min <integer_cst 0x7fffea3031f8 0> max <integer_cst 0x7fffea2f6870 0xffffffffffffffffffffffffffffffff> pointer_to_this <pointer_type 0x7fffe9a4c150>> unsigned V1TI size <integer_cst 0x7fffea2e2f00 128> unit-size <integer_cst 0x7fffea2e2f18 16> align:128 warn_if_not_align:0 symtab:0 alias-set 31 canonical-type 0x7fffe9a59150 nunits:1 pointer_to_this <pointer_type 0x7fffe9a4c2a0>> arg:0 <ssa_name 0x7fffe947ad38 type <pointer_type 0x7fffea30c498 type <integer_type 0x7fffea30c3f0 char> sizes-gimplified public unsigned type_6 DI size <integer_cst 0x7fffea2e2eb8 constant 64> unit-size <integer_cst 0x7fffea2e2ed0 constant 8> align:64 warn_if_not_align:0 symtab:0 alias-set -1 canonical-type 0x7fffea30c498> visited def_stmt _11 = &g + _214; version:11 ptr-info 0x7fffe9487330> arg:1 <integer_cst 0x7fffe949bf18 type <pointer_type 0x7fffe9a4c888> constant 16>>