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...