https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102991
--- Comment #4 from luoxhu at gcc dot gnu.org --- vect-simd-17.p10.c.335r.final: 3379: %v1:V16QI=unspec[%v1:V16QI,%v1:V16QI,%v9:V16QI] 254 3372: {%v11:V4SI=~%v0:V4SI&%v13:V4SI|%v11:V4SI;clobber %r10:V4SI;} // wrong code. REG_DEAD %v0:V4SI REG_UNUSED %r10:V4SI 3373: [%r1:DI+0x80]=%v11:V4SI ASM: .L149: lxvx %vs32,%r9,%r8 vadduwm %v12,%v12,%v13 mfvsrd %r5,%vs42 mfvsrld %r4,%vs42 vadduwm %v10,%v10,%v8 stxv %vs44,112(%r1) xxperm %vs32,%vs32,%vs41 vadduwm %v1,%v13,%v0 vcmpequw %v0,%v0,%v13 xxperm %vs33,%vs33,%vs41 vandc %r10,%v13,%v0 // wrong code vor %v11,%r10,%v11 // wrong code stxv %vs43,128(%r1) stxvx %vs33,%r9,%r8 addi %r8,%r8,-16 bdnz .L149 But the binary is (/opt/binutils-power10/bin/objdump -d vect-simd-17.p10 | less): 10002ea0: 19 42 09 7c lxvx vs32,r9,r8 10002ea4: 80 68 8c 11 vadduwm v12,v12,v13 10002ea8: 67 00 45 7d mfvrd r5,v10 10002eac: 67 02 44 7d mfvsrld r4,vs42 10002eb0: 80 40 4a 11 vadduwm v10,v10,v8 10002eb4: 7d 00 81 f5 stxv vs44,112(r1) 10002eb8: d7 48 00 f0 xxperm vs32,vs32,vs41 10002ebc: 80 00 2d 10 vadduwm v1,v13,v0 10002ec0: 86 68 00 10 vcmpequw v0,v0,v13 10002ec4: d7 48 21 f0 xxperm vs33,vs33,vs41 10002ec8: 44 04 4d 11 vandc v10,v13,v0 // wrong code 10002ecc: 84 5c 6a 11 vor v11,v10,v11 // wrong code 10002ed0: 8d 00 61 f5 stxv vs43,128(r1) 10002ed4: 19 43 29 7c stxvx vs33,r9,r8 10002ed8: f0 ff 08 39 addi r8,r8,-16 10002edc: c4 ff 00 42 bdnz 10002ea0 <doit+0x26f0> %vs42 is a global constant data loaded from memory, it was modified at address 0x10002ec8, there r10 is changed to v10 from ASM to binary, which was supposed to be never change in the loop. (gdb) 0x0000000010002eb4 <doit+9988>: 7d 00 81 f5 stxv vs44,112(r1) 0x0000000010002eb8 <doit+9992>: d7 48 00 f0 xxperm vs32,vs32,vs41 0x0000000010002ebc <doit+9996>: 80 00 2d 10 vadduwm v1,v13,v0 0x0000000010002ec0 <doit+10000>: 86 68 00 10 vcmpequw v0,v0,v13 0x0000000010002ec4 <doit+10004>: d7 48 21 f0 xxperm vs33,vs33,vs41 => 0x0000000010002ec8 <doit+10008>: 44 04 4d 11 vandc v10,v13,v0 0x0000000010002ecc <doit+10012>: 84 5c 6a 11 vor v11,v10,v11 0x0000000010002ed0 <doit+10016>: 8d 00 61 f5 stxv vs43,128(r1) 7: $vs42.v4_int32 = {-30, -29, -28, -27} (gdb) si 0x0000000010002eb4 <doit+9988>: 7d 00 81 f5 stxv vs44,112(r1) 0x0000000010002eb8 <doit+9992>: d7 48 00 f0 xxperm vs32,vs32,vs41 0x0000000010002ebc <doit+9996>: 80 00 2d 10 vadduwm v1,v13,v0 0x0000000010002ec0 <doit+10000>: 86 68 00 10 vcmpequw v0,v0,v13 0x0000000010002ec4 <doit+10004>: d7 48 21 f0 xxperm vs33,vs33,vs41 0x0000000010002ec8 <doit+10008>: 44 04 4d 11 vandc v10,v13,v0 => 0x0000000010002ecc <doit+10012>: 84 5c 6a 11 vor v11,v10,v11 0x0000000010002ed0 <doit+10016>: 8d 00 61 f5 stxv vs43,128(r1) 7: $vs42.v4_int32 = {0, 0, 0, 0}