https://gcc.gnu.org/bugzilla/show_bug.cgi?id=123588
--- Comment #4 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
But I don;t think the code produced is correct:
```
<bb 3> [local count: 105119324]:
vectp_ArgPtr.7_8 = ArgPtr_3(D) + 40;
addr2int0_9 = (signed long) vectp_ArgPtr.7_8;
andmask_14 = addr2int0_9 & 31;
if (andmask_14 == 0)
goto <bb 4>; [80.00%]
else
goto <bb 7>; [20.00%]
<bb 4> [local count: 764504183]:
# ivtmp_44 = PHI <ivtmp_45(4), vectp_ArgPtr.7_8(3)>
# ivtmp.32_36 = PHI <ivtmp.32_12(4), 0(3)>
_46 = MEM[(short unsigned int *)ivtmp_44];
_48 = MEM[(short unsigned int *)ivtmp_44 + 24B];
_50 = MEM[(short unsigned int *)ivtmp_44 + 48B];
_52 = MEM[(short unsigned int *)ivtmp_44 + 72B];
_54 = MEM[(short unsigned int *)ivtmp_44 + 96B];
_56 = MEM[(short unsigned int *)ivtmp_44 + 120B];
...
```
This is only is checking if it is aligned by 32 bytes but the access is over
364Bytes long.