Displaying 9 results from an estimated 9 matches for "x86memop".
2014 Dec 26
2
[LLVMdev] X86 disassembler & assembler mismatch
...in the range [0, 31]), but i cannot find this TYPE_IMM5
> value anywhere in the definition of CMPSS, as below.
> can somebody please enlighten me?
>
> thanks!
>
> // sse12_cmp_packed - sse 1 & 2 compare packed instructions
> multiclass sse12_cmp_packed<RegisterClass RC, X86MemOperand x86memop,
> Operand CC, Intrinsic Int, string asm,
> string asm_alt, Domain d,
> OpndItins itins = SSE_ALU_F32P> {
> def rri : PIi8<0xC2, MRMSrcReg,
> (outs RC:$dst), (ins RC...
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]
$
2012 Nov 08
2
[LLVMdev] X86 Tablegen Description and VEX.W
...98&pathrev=162999
For the multiclass "fma4s", why is "mr" not inherited from "VEX_W" and
"MemOp4" like those of "rm" or "rr" ?
multiclass fma4s< >
...
def mr : FMA4<opc, MRMSrcMem, (outs RC:$dst),
(ins RC:$src1, x86memop:$src2, RC:$src3),
!strconcat(OpcodeStr,
"\t{$src3, $src2, $src1, $dst|$dst, $src1, $src2, $src3}"),
[(set RC:$dst, (OpNode RC:$src1, (mem_frag addr:$src2), RC:$src3))]>;
...
It seems that previous revisions for fma4 intrinsics also followed
similar tr...
2012 Nov 16
2
[LLVMdev] Operand order in dag pattern matching in td files
...tching in target files. Some of them seem intuitive. But I
want to get it clarified anyway. I am using a pattern from
X86InstrFMA.td in the below example. Consider FMA3 pattern
(simplified).
let Constraints = "$src1 = $dst" in {
multiclass fma3s_rm<bits<8> opc, string OpcodeStr, X86MemOperand x86memop,
RegisterClass RC, ValueType OpVT, PatFrag mem_frag,
SDPatternOperator OpNode = null_frag> {
def r : FMA3<opc, MRMSrcReg, (outs RC:$dst),
(ins RC:$src1, RC:$src2, RC:$src3),
!strconcat(OpcodeStr...
2012 Nov 08
0
[LLVMdev] X86 Tablegen Description and VEX.W
On Wed, Nov 7, 2012 at 10:52 PM, Anitha Boyapati
<anitha.boyapati at gmail.com>wrote:
...
> For the multiclass "fma4s", why is "mr" not inherited from "VEX_W" and
> "MemOp4" like those of "rm" or "rr" ?
>
Hey Anitha,
The VEX.W bit is used to denote operand order. In other words, this bit
allows for a memop to be used as
2012 Nov 16
1
[LLVMdev] Operand order in dag pattern matching in td files
..._frag causes the
pattern to be dropped.
Now having covered that the reason the operands are in the order they are
is because the only instruction that doesn't use null_frag is this one
defm r213 : fma3s_rm<opc213, !strconcat(OpStr, !strconcat("213", PackTy)),
x86memop, RC, OpVT, mem_frag, OpNode>
Which specifies the operand order as 213 thus why they are 2, 1, 3 in the
pattern.
~Craig
On Fri, Nov 16, 2012 at 12:19 AM, Anitha B Gollamudi <
anitha.boyapati at gmail.com> wrote:
> On 16 November 2012 13:41, Anitha B Gollamudi <anitha.boyapati at g...
2012 Nov 16
0
[LLVMdev] Operand order in dag pattern matching in td files
...of them seem intuitive. But I
> want to get it clarified anyway. I am using a pattern from
> X86InstrFMA.td in the below example. Consider FMA3 pattern
> (simplified).
>
> let Constraints = "$src1 = $dst" in {
> multiclass fma3s_rm<bits<8> opc, string OpcodeStr, X86MemOperand x86memop,
> RegisterClass RC, ValueType OpVT, PatFrag mem_frag,
> SDPatternOperator OpNode = null_frag> {
>
> def r : FMA3<opc, MRMSrcReg, (outs RC:$dst),
> (ins RC:$src1, RC:$src2, RC:$src3),
>...
2012 Nov 08
2
[LLVMdev] X86 Tablegen Description and VEX.W
...numerated value.
[2]. How does vex_w help in instruction selection in-addition to FMA4 class?
[3]. Why does only "rr" and "rm" forms have vex_w but not "mr" ?
(Reference)
multiclass fma4s<bits<8> opc, string OpcodeStr, RegisterClass RC,
X86MemOperand x86memop, ValueType OpVT, SDNode OpNode,
PatFrag mem_frag> {
def rr : FMA4<opc, MRMSrcReg, (outs RC:$dst),
(ins RC:$src1, RC:$src2, RC:$src3),
!strconcat(OpcodeStr,
"\t{$src3, $src2, $src1, $dst|$dst, $src1, $src2, $src3}"),...
2011 Mar 22
0
[LLVMdev] sitofp inst selection in x86/AVX target [PR9473]
...into isAsmParserOnly = 1 block so that existing
VCVTSI2SD definition takes effect only in asm parser.
Example solution is as follows.
lib/Target/X86/x86InstrSSE.td
...
multiclass sse12_vcvt_avx_s<bits<8> opc, RegisterClass SrcRC,
RegisterClass DstRC,
SDNode OpNode, X86MemOperand x86memop, PatFrag ld_frag,
string asm> {
def rr : SI<opc, MRMSrcReg, (outs DstRC:$dst), (ins SrcRC:$src), asm,
[(set DstRC:$dst, (OpNode SrcRC:$src))]>;
def rm : SI<opc, MRMSrcMem, (outs DstRC:$dst), (ins x86memop:$src), asm,...