Sebastien DELDON-GNB
2011-Feb-28 10:58 UTC
[LLVMdev] Use of movupd instead of movapd for x86
Understood for the aligned case, I want to measure performance degradation for unaligned case. I mean unaligned case versus aligned. I know this is stupid, but I want to try to pass a <4 x float>* as parameter of a routine and at the call site I want to pass a misaligned pointer. Since LLVM is generating movapd instruction it will raise an exception (SEGFAULT), I just want to know if there is a way to enforce generation of movupd instruction instead of movapd. Seb> -----Original Message----- > From: David A. Greene [mailto:greened at obbligato.org] > Sent: Friday, February 25, 2011 5:13 PM > To: Sebastien DELDON-GNB > Cc: llvmdev at cs.uiuc.edu > Subject: Re: [LLVMdev] Use of movupd instead of movapd for x86 > > Sebastien DELDON-GNB <sebastien.deldon at st.com> writes: > > > Hi all, > > > > Is there a way to force llc to generate movupd instruction instead of > movapd for x86 target ? > > > > I know that movapd is more performant, but I would like to measure > degradation when alignment constraints are not met. > > On modern processors a movupd on aligned data is going to be > indistinguishable in performance from a movapd. > > -Dave
On Feb 28, 2011, at 2:58 AM, Sebastien DELDON-GNB wrote:> Understood for the aligned case, I want to measure performance degradation for unaligned case. > I mean unaligned case versus aligned. I know this is stupid, but I want to try to pass a <4 x float>* as parameter of a routine and at the call site I want to pass a misaligned pointer. Since LLVM is generating movapd instruction it will raise an exception (SEGFAULT), I just want to know if there is a way to enforce > generation of movupd instruction instead of movapd.If llvm is generating movapd then it believes the pointer is aligned. Without having more information it's impossible to tell what the issue is. Evan> > Seb > >> -----Original Message----- >> From: David A. Greene [mailto:greened at obbligato.org] >> Sent: Friday, February 25, 2011 5:13 PM >> To: Sebastien DELDON-GNB >> Cc: llvmdev at cs.uiuc.edu >> Subject: Re: [LLVMdev] Use of movupd instead of movapd for x86 >> >> Sebastien DELDON-GNB <sebastien.deldon at st.com> writes: >> >>> Hi all, >>> >>> Is there a way to force llc to generate movupd instruction instead of >> movapd for x86 target ? >>> >>> I know that movapd is more performant, but I would like to measure >> degradation when alignment constraints are not met. >> >> On modern processors a movupd on aligned data is going to be >> indistinguishable in performance from a movapd. >> >> -Dave > > _______________________________________________ > LLVM Developers mailing list > LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
Sebastien DELDON-GNB
2011-Mar-03 10:27 UTC
[LLVMdev] Use of movupd instead of movapd for x86
OK, I found a work-around by adding ,align 8 to vector load/store. Thanks all for your answers> -----Original Message----- > From: Evan Cheng [mailto:evan.cheng at apple.com] > Sent: Tuesday, March 01, 2011 7:26 AM > To: Sebastien DELDON-GNB > Cc: David A. Greene; llvmdev at cs.uiuc.edu > Subject: Re: [LLVMdev] Use of movupd instead of movapd for x86 > > > On Feb 28, 2011, at 2:58 AM, Sebastien DELDON-GNB wrote: > > > Understood for the aligned case, I want to measure performance > degradation for unaligned case. > > I mean unaligned case versus aligned. I know this is stupid, but I > want to try to pass a <4 x float>* as parameter of a routine and at the > call site I want to pass a misaligned pointer. Since LLVM is generating > movapd instruction it will raise an exception (SEGFAULT), I just want > to know if there is a way to enforce > > generation of movupd instruction instead of movapd. > > If llvm is generating movapd then it believes the pointer is aligned. > Without having more information it's impossible to tell what the issue > is. > > Evan > > > > > Seb > > > >> -----Original Message----- > >> From: David A. Greene [mailto:greened at obbligato.org] > >> Sent: Friday, February 25, 2011 5:13 PM > >> To: Sebastien DELDON-GNB > >> Cc: llvmdev at cs.uiuc.edu > >> Subject: Re: [LLVMdev] Use of movupd instead of movapd for x86 > >> > >> Sebastien DELDON-GNB <sebastien.deldon at st.com> writes: > >> > >>> Hi all, > >>> > >>> Is there a way to force llc to generate movupd instruction instead > of > >> movapd for x86 target ? > >>> > >>> I know that movapd is more performant, but I would like to measure > >> degradation when alignment constraints are not met. > >> > >> On modern processors a movupd on aligned data is going to be > >> indistinguishable in performance from a movapd. > >> > >> -Dave > > > > _______________________________________________ > > LLVM Developers mailing list > > LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu > > http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev