On Fri, Jan 8, 2016 at 1:59 PM, H.J. Lu <hjl.to...@gmail.com> wrote: > On Fri, Jan 8, 2016 at 1:53 PM, H.J. Lu <hjl.to...@gmail.com> wrote: >> On Fri, Jan 8, 2016 at 1:43 PM, H.J. Lu <hjl.to...@gmail.com> wrote: >>> On Fri, Jan 8, 2016 at 1:38 PM, Jakub Jelinek <ja...@redhat.com> wrote: >>>> On Fri, Jan 08, 2016 at 01:27:08PM -0800, H.J. Lu wrote: >>>>> > That is just wrong and will severely pessimize correct code. >>>>> > Please don't waste time on that. >>>>> > >>>>> >>>>> Do you have an example to show it will pessimize correct code? >>>> >>>> Anything where the compiler can't figure out alignment info and you use the >>>> aligned functions, starting from trivial tests like: >>>> >>>> void foo (float *p, __m256 q) >>>> { >>>> _mm256_store_ps (p, q); >>>> } >>>> >>> >> >> Is a bad example: >> > > This is a better example: > > __m256 > foo (const void *p, __m256 yy, __mmask8 m) > { > return _mm256_mask_load_ps (yy, m, p); > } >
We have to assume proper alignment in this case. -- H.J.