- Jun 14, 2013
-
-
Benjamin Kramer authored
Give it the right register format so we can also emit it when AVX is enabled. llvm-svn: 183971
-
- May 14, 2013
-
-
Eric Christopher authored
a somewhat randomly chosen cpu that will minimize cpu specific differences on bots. llvm-svn: 181814
-
Eric Christopher authored
It's causing failures on the atom bot. llvm-svn: 181812
-
Eric Christopher authored
Patch by Andrea DiBiagio. llvm-svn: 181809
-
- Mar 26, 2013
-
-
Jakob Stoklund Olesen authored
This only covers the instructions that were given itinerary classes for the Atom model. llvm-svn: 178050
-
Jakob Stoklund Olesen authored
All the instructions tagged with IIC_DEFAULT had nothing in common, and we already have a NoItineraries class to represent untagged instructions. llvm-svn: 177937
-
- Oct 30, 2012
-
-
Manman Ren authored
We used to generate a store (movq) + a load. Now we use movd. rdar://9946746 llvm-svn: 167056
-
- Aug 30, 2012
-
-
Michael Liao authored
- Add 'UseSSEx' to force SSE legacy insn not being selected when AVX is enabled. As the penalty of inter-mixing SSE and AVX instructions, we need prevent SSE legacy insn from being generated except explicitly specified through some intrinsics. For patterns supported by both SSE and AVX, so far, we force AVX insn will be tried first relying on AddedComplexity or position in td file. It's error-prone and introduces bugs accidentally. 'UseSSEx' is disabled when AVX is turned on. For SSE insns inherited by AVX, we need this predicate to force VEX encoding or SSE legacy encoding only. For insns not inherited by AVX, we still use the previous predicates, i.e. 'HasSSEx'. So far, these insns fall into the following categories: * SSE insns with MMX operands * SSE insns with GPR/MEM operands only (xFENCE, PREFETCH, CLFLUSH, CRC, and etc.) * SSE4A insns. * MMX insns. * x87 insns added by SSE. 2 test cases are modified: - test/CodeGen/X86/fast-isel-x86-64.ll AVX code generation is different from SSE one. 'vcvtsi2sdq' cannot be selected by fast-isel due to complicated pattern and fast-isel fallback to materialize it from constant pool. - test/CodeGen/X86/widen_load-1.ll AVX code generation is different from SSE one after fixing SSE/AVX inter-mixing. Exec-domain fixing prefers 'vmovapd' instead of 'vmovaps'. llvm-svn: 162919
-
- Aug 13, 2012
-
-
Craig Topper authored
Remove the LowerMMXCONCAT_VECTORS function. It could never execute because there are no legal 64-bit vector types that could be used as inputs to a 128-bit concat_vectors. Remove a target specific SDNode and its patterns that become unused as a result. llvm-svn: 161742
-
- Jul 30, 2012
-
-
Craig Topper authored
llvm-svn: 160941
-
- May 11, 2012
-
-
Preston Gurd authored
llvm-svn: 156615
-
- Feb 18, 2012
-
-
Jia Liu authored
Emacs-tag and some comment fix for all ARM, CellSPU, Hexagon, MBlaze, MSP430, PPC, PTX, Sparc, X86, XCore. llvm-svn: 150878
-
- Feb 02, 2012
-
-
Andrew Trick authored
Adds an instruction itinerary to all x86 instructions, giving each a default latency of 1, using the InstrItinClass IIC_DEFAULT. Sets specific latencies for Atom for the instructions in files X86InstrCMovSetCC.td, X86InstrArithmetic.td, X86InstrControl.td, and X86InstrShiftRotate.td. The Atom latencies for the remainder of the x86 instructions will be set in subsequent patches. Adds a test to verify that the scheduler is working. Also changes the scheduling preference to "Hybrid" for i386 Atom, while leaving x86_64 as ILP. Patch by Preston Gurd! llvm-svn: 149558
-
- Jan 10, 2012
-
-
Craig Topper authored
Instruction selection priority fixes to remove the XMM/XMMInt/orAVX predicates. Another commit will remove orAVX functions from X86SubTarget. llvm-svn: 147841
-
- Jan 09, 2012
-
-
Craig Topper authored
Don't disable MMX support when AVX is enabled. Fix predicates for MMX instructions that were added along with SSE instructions to check for AVX in addition to SSE level. llvm-svn: 147762
-
- May 05, 2011
-
-
Eli Friedman authored
No test because I can't think of any way to write one that won't break quickly. llvm-svn: 130932
-
- Oct 04, 2010
-
-
Bill Wendling authored
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! llvm-svn: 115552
-
- Oct 03, 2010
-
-
Chris Lattner authored
the immediate field of pshufw is actually an 8-bit field, not a 8-bit field that is sign extended. This fixes PR8288 llvm-svn: 115473
-
Chris Lattner authored
the right file. The assembler supports all the 3dnow instructions now, but not the "3dnowa" ones. llvm-svn: 115468
-
Chris Lattner authored
llvm-svn: 115429
-
- Oct 02, 2010
-
-
Chris Lattner authored
backing int_x86_ssse3_pshuf_w got removed. This caused PR8280. llvm-svn: 115422
-
- Oct 01, 2010
-
-
Dale Johannesen authored
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. llvm-svn: 115243
-
- Sep 09, 2010
-
-
Dale Johannesen authored
llvm-svn: 113501
-
Dale Johannesen authored
uses MMX, even if it also uses other things) from InstrSSE into InstrMMX. No (intended) functional change. llvm-svn: 113462
-
Dale Johannesen authored
llvm-svn: 113420
-
- Sep 08, 2010
-
-
Dale Johannesen authored
llvm-svn: 113406
-
Dale Johannesen authored
Omission of memory form of PI2PD is intentional; this does not use an MMX register and does not put the chip into MMX mode (PI2PS, oddly enough, does). Operands of PI2PS follow the gcc builtin, not Intel. llvm-svn: 113388
-
- Sep 07, 2010
-
-
Dale Johannesen authored
Enable palignr intrinsic. These may need adjustment for a new VT in due course. llvm-svn: 113233
-
- Jul 15, 2010
-
-
Chris Lattner authored
this fixes rdar://8192860. Unfortunately it can only be triggered with llc because llvm-mc matches another (correctly encoded) version of this, so no testcase. llvm-svn: 108454
-
- Jul 05, 2010
-
-
Chris Lattner authored
llvm-svn: 107610
-
- May 24, 2010
-
-
Dan Gohman authored
llvm-svn: 104552
-
- May 20, 2010
-
-
Dan Gohman authored
have a pattern and it had an invalid encoding. llvm-svn: 104244
-
- May 03, 2010
-
-
Kevin Enderby authored
mm to mm/m64 and the Move quadword from xmm2/mem64 to xmm1 had the incorrect encodings. llvm-svn: 102952
-
- Apr 23, 2010
-
-
Stuart Hastings authored
llvm-svn: 102199
-
- Mar 28, 2010
-
-
Chris Lattner authored
llvm-svn: 99748
-
- Mar 15, 2010
-
-
Chris Lattner authored
llvm-svn: 98531
-
- Mar 08, 2010
-
-
Chris Lattner authored
pattern which is broken (source and address swapped). llvm-svn: 97958
-
- Feb 28, 2010
-
-
Dan Gohman authored
llvm-svn: 97348
-
- Feb 23, 2010
-
-
Chris Lattner authored
then use it as an MMX register (!?). llvm-svn: 96901
-
Chris Lattner authored
don't alis it in the MMX .td file with a different width, split into two X86ISD opcodes. This fixes an x86 testcase. llvm-svn: 96859
-