summaryrefslogtreecommitdiffstats
path: root/llvm/test/CodeGen/X86/avx-basic.ll
Commit message (Collapse)AuthorAgeFilesLines
* Put VMOVPQIto64rr in the VRPDI class.Rafael Espindola2013-05-011-0/+10
| | | | | | Patch by Joshua Magee. llvm-svn: 180842
* Teach DAG combiner to constant fold fneg of a BUILD_VECTOR of constants.Craig Topper2012-09-091-2/+2
| | | | llvm-svn: 163483
* Fix assert in LowerBUILD_VECTOR for v16i16 type on AVX.Chad Rosier2011-12-151-0/+8
| | | | | | Patch by Elena Demikhovsky <elena.demikhovsky@intel.com>! llvm-svn: 146684
* Add support for lowering fneg when AVX is enabled.Chad Rosier2011-12-151-0/+8
| | | | | | rdar://10566486 llvm-svn: 146625
* Expand V_SET0 to xorps by default.Jakob Stoklund Olesen2011-11-071-1/+1
| | | | | | | | | The xorps instruction is smaller than pxor, so prefer that encoding. The ExecutionDepsFix pass will switch the encoding to pxor and xorpd when appropriate. llvm-svn: 143996
* Change all checks regarding the presence of any SSE level to alwaysBruno Cardoso Lopes2011-09-151-1/+1
| | | | | | | | | | take into consideration the presence of AVX. This change, together with the SSEDomainFix enabled for AVX, makes AVX codegen to always (hopefully) emit the same code as SSE for 128-bit vector ops. I don't have a testcase for this, but AVX now beats SSE in performance for 128-bit ops in the majority of programas in the llvm testsuite llvm-svn: 139817
* Fix PR10845. SUBREG_TO_REG shouldn't be used when the input andBruno Cardoso Lopes2011-09-121-0/+14
| | | | | | destination types are equal! llvm-svn: 139553
* Add support for 256-bit versions of VSHUFPD and VSHUFPS.Bruno Cardoso Lopes2011-08-251-4/+2
| | | | llvm-svn: 138546
* Instead of always leaving the work to the generic legalizer whenBruno Cardoso Lopes2011-08-161-0/+43
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | there is no support for native 256-bit shuffles, be more smart in some cases, for example, when you can extract specific 128-bit parts and use regular 128-bit shuffles for them. Example: For this shuffle: shufflevector <4 x i64> %a, <4 x i64> %b, <4 x i32> <i32 1, i32 0, i32 7, i32 6> This was expanded to: vextractf128 $1, %ymm1, %xmm2 vpextrq $0, %xmm2, %rax vmovd %rax, %xmm1 vpextrq $1, %xmm2, %rax vmovd %rax, %xmm2 vpunpcklqdq %xmm1, %xmm2, %xmm1 vpextrq $0, %xmm0, %rax vmovd %rax, %xmm2 vpextrq $1, %xmm0, %rax vmovd %rax, %xmm0 vpunpcklqdq %xmm2, %xmm0, %xmm0 vinsertf128 $1, %xmm1, %ymm0, %ymm0 ret Now we get: vshufpd $1, %xmm0, %xmm0, %xmm0 vextractf128 $1, %ymm1, %xmm1 vshufpd $1, %xmm1, %xmm1, %xmm1 vinsertf128 $1, %xmm1, %ymm0, %ymm0 llvm-svn: 137733
* Fix PR10492 by teaching MOVHLPS and MOVLPS mask matching to be more strict.Bruno Cardoso Lopes2011-08-111-0/+8
| | | | llvm-svn: 137324
* Rename and tidy up testsBruno Cardoso Lopes2011-08-091-0/+44
llvm-svn: 137103
OpenPOWER on IntegriCloud