| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
| |
Note that I followed the AVX2 convention here and didn't add LLVM intrinsics
for stores. These can be generated with the nontemporal hint on LLVM IR
stores (see new test). The GCC builtins are lowered directly into nontemporal
stores.
<rdar://problem/17082571>
llvm-svn: 211176
|
|
|
|
|
|
|
| |
Use the max 64-bit element size with EVEX_CD8. This should work since element
size is ignored for a full-vector access (FVM).
llvm-svn: 211175
|
|
|
|
| |
llvm-svn: 211164
|
|
|
|
| |
llvm-svn: 211024
|
|
|
|
| |
llvm-svn: 210892
|
|
|
|
| |
llvm-svn: 210652
|
|
|
|
|
|
| |
Along with the corresponding intrinsic and tests.
llvm-svn: 210543
|
|
|
|
|
|
|
|
|
| |
1) Changed gather and scatter intrinsics. Now they are aligned with GCC built-ins. There is no more non-masked form. Masked intrinsic receives -1 if all lanes are executed.
2) I changed the function that works with intrinsics inside X86ISelLowering.cpp. I put all intrinsics in one table. I did it for INTRINSICS_W_CHAIN and plan to put all intrinsics from WO_CHAIN set to the same table in order to avoid the long-long "switch". (I wanted to use static map initialization that allowed by C++11 but I wasn't able to compile it on VS2012).
3) I added gather/scatter prefetch intrinsics.
4) I fixed MRMm encoding for masked instructions.
llvm-svn: 208522
|
|
|
|
| |
llvm-svn: 207937
|
|
|
|
|
|
| |
Added intrinsics for VPERMT2PS/PD/D/Q instructions.
llvm-svn: 207513
|
|
|
|
| |
llvm-svn: 206897
|
|
|
|
|
|
| |
Added encoding tests.
llvm-svn: 206884
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
The INSERTPS pattern fragment was called insrtps (mising 'e'), which
would make it harder to grep for the patterns related to this instruction.
Renaming it to use the proper instruction name.
Reviewers: nadav
CC: llvm-commits
Differential Revision: http://reviews.llvm.org/D3443
llvm-svn: 206779
|
|
|
|
|
|
|
| |
Implemented INSERT_VECTOR_ELT operation for v16i1 and v8i1 vectors;
Implemented "store" for i1 type
llvm-svn: 205850
|
|
|
|
| |
llvm-svn: 205754
|
|
|
|
| |
llvm-svn: 205214
|
|
|
|
|
|
| |
By Robert Khasanov rob.khasanov@gmail.com
llvm-svn: 204906
|
|
|
|
| |
llvm-svn: 204804
|
|
|
|
| |
llvm-svn: 203790
|
|
|
|
|
|
|
|
| |
packed instructions, added encoding tests for them.
By Robert Khazanov.
llvm-svn: 203098
|
|
|
|
| |
llvm-svn: 202624
|
|
|
|
| |
llvm-svn: 202015
|
|
|
|
| |
llvm-svn: 201980
|
|
|
|
|
|
|
|
| |
Nis Zinovy (zinovy.y.nis@intel.com)
Fixed truncate i32 to i1; a test will be provided in the next commit.
llvm-svn: 201757
|
|
|
|
| |
llvm-svn: 201681
|
|
|
|
|
|
| |
instruction with 0xf2/f3/66 were in front of them, but don't themselves have a prefix. For now this doesn't change any bbehavior, but plan to use it to fix some bugs in the disassembler.
llvm-svn: 201538
|
|
|
|
| |
llvm-svn: 201502
|
|
|
|
| |
llvm-svn: 201487
|
|
|
|
|
|
| |
fixed encoding of VEXTRACTPS instruction.
llvm-svn: 201134
|
|
|
|
| |
llvm-svn: 201066
|
|
|
|
|
|
|
| |
Added VPTESTNM instruction.
Added a pattern to vselect (lit tests will follow).
llvm-svn: 200823
|
|
|
|
|
|
| |
application.
llvm-svn: 200608
|
|
|
|
| |
llvm-svn: 200455
|
|
|
|
|
|
| |
they give better sequences than VPERMI
llvm-svn: 199893
|
|
|
|
|
|
| |
removed AVX512SI format, since it is similar to AVX512BI.
llvm-svn: 199217
|
|
|
|
|
|
|
|
| |
and the current mode from the concept of SSE instructions using 0x66 prefix as part of their encoding without being affected by the mode.
This should allow SSE instructions to be encoded correctly in 16-bit mode which r198586 probably broke.
llvm-svn: 199193
|
|
|
|
|
|
| |
Changed intrinsics for vrcp14/vrcp28 vrsqrt14/vrsqrt28 - aligned with GCC.
llvm-svn: 199102
|
|
|
|
| |
llvm-svn: 198745
|
|
|
|
| |
llvm-svn: 198593
|
|
|
|
|
|
|
|
| |
"hasSideEffects=0", added this property to VMOVSS/VMOVSD;
Optimized a truncate pattern.
llvm-svn: 198562
|
|
|
|
|
|
| |
Removed vzeroupper from AVX-512 mode - our optimization gude does not recommend to insert vzeroupper at all.
llvm-svn: 198557
|
|
|
|
|
|
| |
disassembler without string matches.
llvm-svn: 198545
|
|
|
|
|
|
| |
instructions to go through to the disassembler tables without resorting to string matches. Apply flag to all _REV instructions.
llvm-svn: 198543
|
|
|
|
|
|
| |
table builder doesn't need to string match them to exclude them.
llvm-svn: 198323
|
|
|
|
|
|
|
| |
Printing rounding control.
Enncoding for EVEX_RC (rounding control).
llvm-svn: 198277
|
|
|
|
| |
llvm-svn: 198008
|
|
|
|
| |
llvm-svn: 197981
|
|
|
|
| |
llvm-svn: 197876
|
|
|
|
|
|
|
|
| |
Bader).
Added implementation of "truncate" from integer type (i64/i32/i16/i8) to i1.
llvm-svn: 197482
|
|
|
|
|
|
|
|
|
| |
Added scalar compare VCMPSS, VCMPSD.
Implemented LowerSELECT for scalar FP operations.
I replaced FSETCCss, FSETCCsd with one node type FSETCCs.
Node extract_vector_elt(v16i1/v8i1, idx) returns an element of type i1.
llvm-svn: 197384
|