>>> On 27.06.19 at 13:02, <ubiz...@gmail.com> wrote:
> On Thu, Jun 27, 2019 at 12:47 PM Jan Beulich <jbeul...@suse.com> wrote:
>>
>> >>> On 27.06.19 at 12:22, <ubiz...@gmail.com> wrote:
>> > On Thu, Jun 27, 2019 at 11:10 AM Jan Beulich <jbeul...@suse.com> wrote:
>> >>
>> >> >>> On 27.06.19 at 11:03,  wrote:
>> >> > With just an "m" constraint misaligned memory operands won't be forced
>> >> > into a register, and hence cause #GP. So far this was guaranteed only
>> >> > in the case that CVT{,T}PD2DQ were chosen (which looks to be the case on
>> >> > x86-64 only).
>> >> >
>> >> > Instead of switching the second alternative to Bm, use just m on the
>> >> > first and replace nonimmediate_operand by vector_operand.
>> >>
>> >> While doing this and the others where I'm also replacing Bm by uses of
>> >> vector_operand, I've started wondering whether Bm couldn't (and then
>> >> shouldn't) be dropped altogether, replacing it everywhere by "m"
>> >> combined with vector_operand (or vector_memory_operand when
>> >> register operands aren't allowed anyway).
>> >
>> > No. Register allocator will propagate unaligned memory in non-AVX
>> > case, which is not allowed with vector_operand.
>>
>> I'm afraid I don't understand: Unaligned SIMD memory accesses will
>> generally fault in non-AVX mode, so such propagation would seem
>> wrong to me and hence would seem to be correctly not allowed.
>> Furthermore both vector_operand and Bm resolve to the same
>> vector_memory_operand. The TARGET_AVX check actually is inside
>> vector_memory_operand, i.e. affects both the same way.
> 
> "Bm" *prevents* propagation of unaligned access for non-AVX targets.
> As said, register allocator does not care for operand predicates (it
> only looks at operand constraints), so it will propagate unaligned
> access with "m" operand. To avoid propagation, "Bm" should and does
> use vector_memory_operand constraint internally.

Okay, I think I got it now (also because of your reply on the other
thread). It means in the patch here I need to retain Bm rather than
dropping it, too, and additionally use it on the other alternative.

Jan


Reply via email to