[llvm-commits] Fixed a bug in VCMPPS (X86 AVX) pseudo instructions - Please review

Demikhovsky, Elena elena.demikhovsky at intel.com
Mon Feb 6 01:02:02 PST 2012


I added the full testing for all possible pseudo-ops of cmp.
I extended X86AsmPrinter.cpp and X86IntelInstPrinter.cpp.

You’ll also see lines alignments (unrelated to this fix) in X86IselLowering.cpp from my previous check-in.

- Elena
From: Craig Topper [mailto:craig.topper at gmail.com]
Sent: Monday, February 06, 2012 07:26
To: Eric Christopher
Cc: Demikhovsky, Elena; llvm-commits at cs.uiuc.edu
Subject: Re: [llvm-commits] Fixed a bug in VCMPPS (X86 AVX) pseudo instructions - Please review

Also you should fix the two other places that do the same thing as well. X86AsmPrinter.cpp and X86IntelInstPrinter.cpp.
On Sun, Feb 5, 2012 at 9:24 PM, Craig Topper <craig.topper at gmail.com<mailto:craig.topper at gmail.com>> wrote:
As nothing protects the value written in the intrinsic in the source code. I don't think that having a default case for all unexpected values is the right way to go. Maybe the immediate should be masked to remove the reserved encodings? Or the full value should be printed as an integer if its too big?

On Sun, Feb 5, 2012 at 5:01 PM, Eric Christopher <echristo at apple.com<mailto:echristo at apple.com>> wrote:
Looks fine, but could you get an exhaustive testcase please?

vcmpgeps reg1, reg2, reg3
vcmapfalseps reg1, reg2, reg3

etc?

Thanks!

On Feb 5, 2012, at 5:12 AM, Demikhovsky, Elena wrote:

> This IR code
> %res = call <8 x float> @llvm.x86.avx.cmp.ps.256(<8 x float> %a0, <8 x float> %a1, i8 14)
> fails with assertion:
>
> llc: X86ATTInstPrinter.cpp:62: void llvm::X86ATTInstPrinter::printSSECC(const llvm::MCInst*, unsigned int, llvm::raw_ostream&): Assertion `0 && "Invalid ssecc argument!"' failed.
> 0  llc             0x0000000001355803
> 1  llc             0x0000000001355dc9
> 2  libpthread.so.0 0x00007f79a30575d0
> 3  libc.so.6       0x00007f79a23a1945 gsignal + 53
> 4  libc.so.6       0x00007f79a23a2f21 abort + 385
> 5  libc.so.6       0x00007f79a239a810 __assert_fail + 240
> 6  llc             0x00000000011858d5 llvm::X86ATTInstPrinter::printSSECC(llvm::MCInst const*, unsigned int, llvm::raw_ostream&) + 119
>
>
> Attached a fix. Please review.
>
>
> - Elena
>
>
> ---------------------------------------------------------------------
> Intel Israel (74) Limited
>
> This e-mail and any attachments may contain confidential material for
> the sole use of the intended recipient(s). Any review or distribution
> by others is strictly prohibited. If you are not the intended
> recipient, please contact the sender and delete all copies.
> <cmp.diff>_______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu<mailto:llvm-commits at cs.uiuc.edu>
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits

_______________________________________________
llvm-commits mailing list
llvm-commits at cs.uiuc.edu<mailto:llvm-commits at cs.uiuc.edu>
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits


--
~Craig



--
~Craig
---------------------------------------------------------------------
Intel Israel (74) Limited

This e-mail and any attachments may contain confidential material for
the sole use of the intended recipient(s). Any review or distribution
by others is strictly prohibited. If you are not the intended
recipient, please contact the sender and delete all copies.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20120206/e44833dd/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: cmp2.diff
Type: application/octet-stream
Size: 13063 bytes
Desc: cmp2.diff
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20120206/e44833dd/attachment.obj>


More information about the llvm-commits mailing list