summaryrefslogtreecommitdiff
path: root/include/llvm/IntrinsicsX86.td
Commit message (Collapse)AuthorAge
* Renamed llvm.x86.sse42.crc32 intrinsics; crc64 doesn't exist. Chad Rosier2011-05-26
| | | | | | | | | | crc32.[8|16|32] have been renamed to .crc32.32.[8|16|32] and crc64.[8|16|32] have been renamed to .crc32.64.[8|64]. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132163 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove dead intrinsics.Bill Wendling2011-05-04
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130831 91177308-0d34-0410-b5e6-96231b3b80d8
* Add 3DNow! intrinsics.Michael J. Spencer2011-04-15
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129551 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix whitespace and tabs.Michael J. Spencer2011-04-14
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129517 91177308-0d34-0410-b5e6-96231b3b80d8
* Reapply r129401 with patch for clang.Bill Wendling2011-04-13
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129419 91177308-0d34-0410-b5e6-96231b3b80d8
* Revert r129401 for now. Clang is using the old way of doing things.Bill Wendling2011-04-12
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129403 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove the unaligned load intrinsics in favor of using native unaligned loads.Bill Wendling2011-04-12
| | | | | | | | | | Now that we have a first-class way to represent unaligned loads, the unaligned load intrinsics are superfluous. First part of <rdar://problem/8460511>. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129401 91177308-0d34-0410-b5e6-96231b3b80d8
* The pshufw instruction came about in MMX2 when SSE was introduced. Don't placeBill Wendling2010-10-04
| | | | | | | | | | it in with the SSSE3 instructions. Steward! Could you place this chair by the aft sun deck? I'm trying to get away from the Astors. They are such boors! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115552 91177308-0d34-0410-b5e6-96231b3b80d8
* the immediate field of pshufw is actually an 8-bit field, not a 8-bit field ↵Chris Lattner2010-10-03
| | | | | | that is sign extended. This fixes PR8288 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115473 91177308-0d34-0410-b5e6-96231b3b80d8
* Massive rewrite of MMX: Dale Johannesen2010-09-30
| | | | | | | | | | | | | | | | | | | | | The x86_mmx type is used for MMX intrinsics, parameters and return values where these use MMX registers, and is also supported in load, store, and bitcast. Only the above operations generate MMX instructions, and optimizations do not operate on or produce MMX intrinsics. MMX-sized vectors <2 x i32> etc. are lowered to XMM or split into smaller pieces. Optimizations may occur on these forms and the result casted back to x86_mmx, provided the result feeds into a previous existing x86_mmx operation. The point of all this is prevent optimizations from introducing MMX operations, which is unsafe due to the EMMS problem. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115243 91177308-0d34-0410-b5e6-96231b3b80d8
* Add patterns for MMX that use the new intrinsics.Dale Johannesen2010-09-07
| | | | | | | | | Enable palignr intrinsic. These may need adjustment for a new VT in due course. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113233 91177308-0d34-0410-b5e6-96231b3b80d8
* Revert int_x86_mmx_palignr_b intrinsic to match llvm-gcc's version.Bill Wendling2010-09-02
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112886 91177308-0d34-0410-b5e6-96231b3b80d8
* - Change __builtin_ia32_palignr intrinsic type to match the pattern in clang.Bill Wendling2010-09-02
| | | | | | | | | | | | | | | - Add patterns to match the following MMX builtins: * __builtin_ia32_vec_init_v8qi * __builtin_ia32_vec_init_v4hi * __builtin_ia32_vec_init_v2si * __builtin_ia32_vec_ext_v2si These builtins do not correspond to a single MMX instruction. They will have to be lowered -- most likely in the back-end. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112881 91177308-0d34-0410-b5e6-96231b3b80d8
* Recommit with changes. Comment out palignr for the Dale Johannesen2010-09-01
| | | | | | | | | | moment, as there's a testcase that uses it and expects it to be subject to optimizations; we won't be doing that. Some adjustments based on feedback from Bill. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112754 91177308-0d34-0410-b5e6-96231b3b80d8
* Revert 112740, it broke some clang tests somehow...Dale Johannesen2010-09-01
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112744 91177308-0d34-0410-b5e6-96231b3b80d8
* Add a few more missing MMX operations. This should be it.Dale Johannesen2010-09-01
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112740 91177308-0d34-0410-b5e6-96231b3b80d8
* Add some MMX intrinsics that duplicate functionalityDale Johannesen2010-09-01
| | | | | | | | | | available in normal llvm operators. We aren't going to use those for MMX any more because it's unsafe for the optimizers to synthesize new MMX instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112685 91177308-0d34-0410-b5e6-96231b3b80d8
* Add a new llvm.x86.int intrinsic, allowing access to the Chris Lattner2010-08-23
| | | | | | | x86 int and int3 instructions. Patch by Peter Housel! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111831 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove rsqrt/sqrt_nr intrinsics since there are no more builtins for them on ↵Bruno Cardoso Lopes2010-08-11
| | | | | | clang git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110845 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove AVX 256-bit cast intrinsics now that clang is using ↵Bruno Cardoso Lopes2010-08-11
| | | | | | __builtin_shufflevector for those git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110772 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove AVX 256-bit unpack and interleave intrinsics now that clang is using ↵Bruno Cardoso Lopes2010-08-11
| | | | | | __builtin_shufflevector for those git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110769 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove AVX 256-bit shuffle intrinsics now that clang is using ↵Bruno Cardoso Lopes2010-08-11
| | | | | | __builtin_shufflevector for those git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110767 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove replicate intrinsics, clang will generate shufflevector for those. ↵Bruno Cardoso Lopes2010-08-10
| | | | | | The shuffles can't be matched by x86 codegen yet, but will soon git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110647 91177308-0d34-0410-b5e6-96231b3b80d8
* Use i32 instead of i8 for dot product intrinsicBruno Cardoso Lopes2010-08-10
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110643 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix the last argument type of AVX vblend intrinsicsBruno Cardoso Lopes2010-08-10
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110628 91177308-0d34-0410-b5e6-96231b3b80d8
* Patterns to match AVX 256-bit vzero intrinsicsBruno Cardoso Lopes2010-08-06
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110480 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove unused AVX intrinsicsBruno Cardoso Lopes2010-08-06
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110407 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove IntrWriteMem, as it's the default. Rename IntrWriteArgMemDan Gohman2010-08-05
| | | | | | | to IntrReadWriteArgMem, as it's for reading as well as writing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110395 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix a comment typo and add more 256-bit intrinsicsBruno Cardoso Lopes2010-08-04
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110177 91177308-0d34-0410-b5e6-96231b3b80d8
* Support x86 AVX 256-bit instruction intrinsics. Right now support all of ↵Bruno Cardoso Lopes2010-08-03
| | | | | | | | | | | them, but as soon as we properly codegen the simple vector operations in clang, remove the unnecessary builti-ins/intrinsics from clang and llvm. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110094 91177308-0d34-0410-b5e6-96231b3b80d8
* Make sure aeskeygenassist uses an unsigned immediate field.Eric Christopher2010-05-25
| | | | | | | Fixes rdar://8017638 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104617 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove the palignr intrinsics now that we lower them to vector shuffles,Eric Christopher2010-04-20
| | | | | | | | | shifts and null vectors. Autoupgrade these to what we'd lower them to. Add a testcase to exercise this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101851 91177308-0d34-0410-b5e6-96231b3b80d8
* Rewrite aesimc handling. It only takes a single input and has a singleEric Christopher2010-04-02
| | | | | | | dest. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100252 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix typo aeskeygenassist -> aeskeygenassist128.Eric Christopher2010-04-02
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100250 91177308-0d34-0410-b5e6-96231b3b80d8
* Add aeskeygenassist intrinsic and rename all of the aes intrinsics toEric Christopher2010-04-01
| | | | | | | | aes instead of sse4.2. Add a brief todo for a subtarget flag and rework the aeskeygenassist instruction to more closely match the docs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100078 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove the pmulld intrinsic and autoupdate it as a vector multiply.Eric Christopher2010-03-30
| | | | | | | | Rewrite the pmulld patterns, and make sure that they fold in loads of arguments into the instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99910 91177308-0d34-0410-b5e6-96231b3b80d8
* Reapply Kevin's change 94440, now that Chris has fixed the limitation onBob Wilson2010-03-25
| | | | | | | opcode values fitting in one byte (svn r99494). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99514 91177308-0d34-0410-b5e6-96231b3b80d8
* Speculatively revert this to see if it fixes buildbot failures.Bob Wilson2010-03-24
| | | | | | | | | | | | | --- Reverse-merging r99440 into '.': U test/MC/AsmParser/X86/x86_32-bit_cat.s U test/MC/AsmParser/X86/x86_32-encoding.s U include/llvm/IntrinsicsX86.td U include/llvm/CodeGen/SelectionDAGNodes.h U lib/Target/X86/X86InstrSSE.td U lib/Target/X86/X86ISelLowering.h git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99450 91177308-0d34-0410-b5e6-96231b3b80d8
* Added the Advanced Encryption Standard (AES) Instructions.Kevin Enderby2010-03-24
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99440 91177308-0d34-0410-b5e6-96231b3b80d8
* [llvm_void_ty] is no longer needed for result types, Chris Lattner2010-03-23
| | | | | | | just use an empty result list. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99346 91177308-0d34-0410-b5e6-96231b3b80d8
* Fixed the encoding problems of the crc32 instructions. All had the Operand sizeKevin Enderby2010-03-19
| | | | | | | | | | override prefix and only the r/m16 forms should have had that. Also for variant one, the AT&T syntax, added suffixes to all forms. Also added the missing 64-bit form for 'CRC32 r64, r/m8'. Plus added test cases for all forms and tweaked one test case to add the needed suffixes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98980 91177308-0d34-0410-b5e6-96231b3b80d8
* Revert r92939. These intrinsics get matched to LLVM instructions,David Greene2010-01-07
| | | | | | | so removing at Chris' request. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92947 91177308-0d34-0410-b5e6-96231b3b80d8
* Add some "missing" instrinsics to make the SSE intrinsic set a bit moreDavid Greene2010-01-07
| | | | | | | orthogonal. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92939 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove the gcc builtins from the intrinsics, we'll lower themEric Christopher2009-12-01
| | | | | | | explicitly so we can check arguments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90199 91177308-0d34-0410-b5e6-96231b3b80d8
* Recommitting PALIGNR shift width fixes.Sean Callanan2009-11-20
| | | | | | | | Thanks to Daniel Dunbar for fixing clang intrinsics: http://llvm.org/viewvc/llvm-project?view=rev&revision=89499 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89500 91177308-0d34-0410-b5e6-96231b3b80d8
* Reverting PALIGNR fix until I figure out how thisSean Callanan2009-11-20
| | | | | | | broke the Clang testsuite. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89495 91177308-0d34-0410-b5e6-96231b3b80d8
* Fixed PALIGNR to take 8-bit rotations in all cases.Sean Callanan2009-11-20
| | | | | | | | Also fixed the corresponding testcase, and the PALIGNR intrinsic (tested for correctness with llvm-gcc). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89491 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix PR5315, original patch by Nicolas Capens!Eric Christopher2009-11-06
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86203 91177308-0d34-0410-b5e6-96231b3b80d8
* Add sse4.2 string/text processing intrinsics. We'll select these later.Eric Christopher2009-08-14
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79037 91177308-0d34-0410-b5e6-96231b3b80d8
* Whitespace cleanup.Eric Christopher2009-08-14
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79036 91177308-0d34-0410-b5e6-96231b3b80d8