mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-13 04:30:23 +00:00
Make sure we correctly note the existence of an i8 immediate for vblendvps and friends, so we compute fixups correctly. PR11586.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146709 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
bcf14bbd57
commit
7e840efc23
@ -510,7 +510,7 @@ class FMA3<bits<8> o, Format F, dag outs, dag ins, string asm,
|
||||
// FMA4 Instruction Templates
|
||||
class FMA4<bits<8> o, Format F, dag outs, dag ins, string asm,
|
||||
list<dag>pattern>
|
||||
: I<o, F, outs, ins, asm, pattern, SSEPackedInt>, TA,
|
||||
: Ii8<o, F, outs, ins, asm, pattern, SSEPackedInt>, TA,
|
||||
OpSize, VEX_4V, VEX_I8IMM, Requires<[HasFMA4]>;
|
||||
|
||||
// XOP 2, 3 and 4 Operand Instruction Template
|
||||
|
@ -6563,14 +6563,14 @@ let Constraints = "$src1 = $dst" in {
|
||||
multiclass SS41I_quaternary_int_avx<bits<8> opc, string OpcodeStr,
|
||||
RegisterClass RC, X86MemOperand x86memop,
|
||||
PatFrag mem_frag, Intrinsic IntId> {
|
||||
def rr : I<opc, MRMSrcReg, (outs RC:$dst),
|
||||
def rr : Ii8<opc, MRMSrcReg, (outs RC:$dst),
|
||||
(ins RC:$src1, RC:$src2, RC:$src3),
|
||||
!strconcat(OpcodeStr,
|
||||
"\t{$src3, $src2, $src1, $dst|$dst, $src1, $src2, $src3}"),
|
||||
[(set RC:$dst, (IntId RC:$src1, RC:$src2, RC:$src3))],
|
||||
SSEPackedInt>, OpSize, TA, VEX_4V, VEX_I8IMM;
|
||||
|
||||
def rm : I<opc, MRMSrcMem, (outs RC:$dst),
|
||||
def rm : Ii8<opc, MRMSrcMem, (outs RC:$dst),
|
||||
(ins RC:$src1, x86memop:$src2, RC:$src3),
|
||||
!strconcat(OpcodeStr,
|
||||
"\t{$src3, $src2, $src1, $dst|$dst, $src1, $src2, $src3}"),
|
||||
|
@ -3346,3 +3346,10 @@ vdivpd -4(%rcx,%rbx,8), %xmm10, %xmm11
|
||||
_foo:
|
||||
nop
|
||||
vpshufb _foo(%rip), %xmm0, %xmm0
|
||||
|
||||
// CHECK: vblendvps %ymm1, _foo2(%rip), %ymm0, %ymm0
|
||||
// CHECK: encoding: [0xc4,0xe3,0x7d,0x4a,0x05,A,A,A,A,0x10]
|
||||
// CHECK: fixup A - offset: 5, value: _foo2-5
|
||||
_foo2:
|
||||
nop
|
||||
vblendvps %ymm1, _foo2(%rip), %ymm0, %ymm0
|
||||
|
Loading…
Reference in New Issue
Block a user