http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49442
--- Comment #3 from Jakub Jelinek <jakub at gcc dot gnu.org> 2011-06-17 08:15:38 UTC --- ICC apparently has __assume_aligned (ptr, align) for this, and also #pragma vector {aligned,unaligned,always,nontemporal}. For alignment, I'd say having both hard alignment and likely alignment hints somewhere in the code would be better than ptr_align attribute on the arguments, so something like __builtin_assume_aligned (ptr, align[, misalign]) and __builtin_likely_aligned (ptr, align[, misalign]); would be helpful. The question is if they shouldn't return the pointer again, and let the user write it in the form ptr = __builtin_assume_aligned (ptr, 16); which would be optimized away when we compute the alignment.