search for: ssepackedsingle

Displaying 11 results from an estimated 11 matches for "ssepackedsingle".

2013 May 20
2
[LLVMdev] VCOMISS instruction in X86
Hi, I'm looking at scalar and packed instructions in X86. The instruction VCOMISS is scalar. May I remove SSEPackedSingle/SSEPackedDouble domain from it? defm VUCOMISS : sse12_ord_cmp<0x2E, FR32, X86cmp, f32, f32mem, loadf32, "ucomiss", SSEPackedSingle>, TB, VEX, VEX_LIG; defm VUCOMISD : sse12_ord_cmp<0x2E, FR64, X86cmp, f64, f64mem, loadf64,...
2010 Mar 25
1
[LLVMdev] TSFlagsFields and TSFlagsShifts obsolete?
...ields and TSFlagsShifts hack in the InstrInfo TableGen class now. This seems to work just fine: class Instruction { bits<32> TSFlags; } class Domain<bits<2> val> { bits<2> Value = val; } def GenericDomain : Domain<0>; def SSEPackedInt : Domain<1>; def SSEPackedSingle : Domain<2>; def SSEPackedDouble : Domain<3>; class X86Instr<bits<8> opcod> : Instruction { Domain ExeDomain = GenericDomain; let TSFlags{0-7} = opcod; let TSFlags{22-23} = ExeDomain.Value; } class PIInstr<bits<8> opcod> : X86Instr<opcod> { let Ex...
2012 Jan 04
2
[LLVMdev] Execution domain for VEXTRACTF128/VINSERTF128
Hi, I noticed, that execution domain is set to SSEPackedSingle for these instructions. Looks like a bug. let neverHasSideEffects = 1, ExeDomain = SSEPackedSingle in { def VEXTRACTF128rr : AVXAIi8<0x19, MRMDestReg, (outs VR128:$dst), - Elena --------------------------------------------------------------------- Intel Israel (74) Limited This e-mail and a...
2012 Jan 04
0
[LLVMdev] Execution domain for VEXTRACTF128/VINSERTF128
...}, { X86::VPERM2F128rm, X86::VPERM2F128rm, X86::VPERM2I128rm }, { X86::VPERM2F128rr, X86::VPERM2F128rr, X86::VPERM2I128rr } On Wed, Jan 4, 2012 at 4:32 AM, Demikhovsky, Elena < elena.demikhovsky at intel.com> wrote: > Hi, > > I noticed, that execution domain is set to SSEPackedSingle for these > instructions. > Looks like a bug. > > let neverHasSideEffects = 1, ExeDomain = SSEPackedSingle in { > def VEXTRACTF128rr : AVXAIi8<0x19, MRMDestReg, (outs VR128:$dst), > > - Elena > > > --------------------------------------------------------------------...
2012 Jan 05
1
[LLVMdev] Execution domain for VEXTRACTF128/VINSERTF128
...X86::VPERM2F128rm, X86::VPERM2I128rm }, { X86::VPERM2F128rr, X86::VPERM2F128rr, X86::VPERM2I128rr } On Wed, Jan 4, 2012 at 4:32 AM, Demikhovsky, Elena <elena.demikhovsky at intel.com<mailto:elena.demikhovsky at intel.com>> wrote: Hi, I noticed, that execution domain is set to SSEPackedSingle for these instructions. Looks like a bug. let neverHasSideEffects = 1, ExeDomain = SSEPackedSingle in { def VEXTRACTF128rr : AVXAIi8<0x19, MRMDestReg, (outs VR128:$dst), - Elena --------------------------------------------------------------------- Intel Israel (74) Limited This e-mail and a...
2016 Nov 28
2
RFC: code size reduction in X86 by replacing EVEX with VEX encoding
Hal, that’s a good point. There are more manually-maintained tables in the X86 backend that should probably be tablegened: the memory-folding tables and ReplaceableInstrs, to name a couple. If you have ideas on how to get these auto-generated, please let us know. From: llvm-dev [mailto:llvm-dev-bounces at lists.llvm.org] On Behalf Of Hal Finkel via llvm-dev Sent: Wednesday, November 23, 2016
2011 Feb 26
0
[LLVMdev] X86 LowerVECTOR_SHUFFLE Question
...er through these special X86* operators. This is reflected in X86InstrSSE.td: "Traditional": defm VUNPCKLPS: sse12_unpack_interleave<0x14, unpckl, v4f32, memopv4f32, VR128, f128mem, "unpcklps\t{$src2, $src1, $dst|$dst, $src1, $src2}", SSEPackedSingle>, VEX_4V; "New-style": def : Pat<(v4f32 (X86Unpcklps VR128:$src1, (memopv4f32 addr:$src2))), (VUNPCKLPSrm VR128:$src1, addr:$src2)>, Requires<[HasAVX]>; I think these are basically the same pattern. What's the purpose of these special operators and...
2011 Feb 25
2
[LLVMdev] X86 LowerVECTOR_SHUFFLE Question
In ToT, LowerVECTOR_SHUFFLE for x86 has this code: if (X86::isUNPCKLMask(SVOp)) getTargetShuffleNode(getUNPCKLOpcode(VT) dl, VT, V1, V2, DAG); why would this not be: if (X86::isUNPCKLMask(SVOp)) return SVOp; I'm trying to add support for VUNPCKL and am getting into trouble because the existing code ends up creating: VUNPCKLPS load load which is badness come selection
2014 Dec 26
2
[LLVMdev] X86 disassembler & assembler mismatch
...$src1 = $dst" in > { > defm CMPPS : sse12_cmp_packed<VR128, f128mem, SSECC, > int_x86_sse_cmp_ps, > "cmp${cc}ps\t{$src2, $dst|$dst, > $src2}", > "cmpps\t{$cc, $src2, $dst|$dst, $src2, > $cc}", > SSEPackedSingle, SSE_ALU_F32P>, > PS; > defm CMPPD : sse12_cmp_packed<VR128, f128mem, SSECC, > int_x86_sse2_cmp_pd, > "cmp${cc}pd\t{$src2, $dst|$dst, > $src2}", > "cmppd\t{$cc, $src2, $dst|$dst, $src2, > $cc}", >...
2014 Dec 26
2
[LLVMdev] X86 disassembler & assembler mismatch
hi, some instructions mismatch between assembler & disassembler, like below. it seems this happens with all SSECC related instructions? thanks, Jun $ echo "cmpps xmm1, xmm2, 23" | ./Release+Asserts/bin/llvm-mc -assemble -triple=x86_64 --output-asm-variant=1 -x86-asm-syntax=intel -show-encoding .text cmpps xmm1, xmm2, 23 # encoding: [0x0f,0xc2,0xca,0x17] $
2011 Feb 26
2
[LLVMdev] X86 LowerVECTOR_SHUFFLE Question
...rs. > > This is reflected in X86InstrSSE.td: > > "Traditional": > > defm VUNPCKLPS: sse12_unpack_interleave<0x14, unpckl, v4f32, memopv4f32, > VR128, f128mem, "unpcklps\t{$src2, $src1, $dst|$dst, $src1, $src2}", > SSEPackedSingle>, VEX_4V; > "New-style": > > def : Pat<(v4f32 (X86Unpcklps VR128:$src1, (memopv4f32 addr:$src2))), > (VUNPCKLPSrm VR128:$src1, addr:$src2)>, Requires<[HasAVX]>; > > I think these are basically the same pattern. > > What's the p...