Uros Bizjak <ubiz...@gmail.com> 于2021年7月2日周五 下午7:07写道: > > On Fri, Jul 2, 2021 at 12:48 PM Hongyu Wang <wwwhhhyyy...@gmail.com> wrote: > > > > > > > > On Fri, Jul 2, 2021 at 10:30 AM Hongyu Wang <hongyu.w...@intel.com> wrote: > > > > > > > > Hi, > > > > > > > > For instructions like cvtss2si, there is no need to output the 'l' > > > > or 'q' suffixes just like cvtss2usi, since the output operand is always > > > > register and those suffixes are only used to distinguish ambiguous > > > > memory operands. > > > > > > > > Bootstraped and regression tested on x86_64-linux-gnu {,-m32}. > > > > OK for master? > > > > > > No, we leave suffixes for additional assembler checks. > > > > > > Uros. > > > > > > > What is the difference between cvtss2si and cvtss2usi? I just don't > > understand why only the singed convert requires suffixes. > > > > Assembler encodes these cvt*2si instruction according to the output > > operand size, it has same behavior w and w/o the suffixes. AFAIK the > > suffixes are needed when the assembler could not distinguish the > > operand size, otherwise it seems to be redundant. > > We also don't need suffixes for: > > movl %edi, %eax > > but we emit them anyway. > > Uros.
Ok, so I suppose cvt*2si requires those suffixes on purpose, while cvt*2usi don't for some reason. Thanks for your reply. -- Regards, Hongyu, Wang