forked from OSchip/llvm-project
[X86] Fix the SchedRW for XOP vpcom register form instructions to not be marked as loads.
llvm-svn: 328071
This commit is contained in:
parent
f19eacfe0b
commit
137a4dd84d
|
@ -230,7 +230,7 @@ multiclass xopvpcom<bits<8> opc, string Suffix, SDNode OpNode, ValueType vt128>
|
|||
[(set VR128:$dst,
|
||||
(vt128 (OpNode (vt128 VR128:$src1), (vt128 VR128:$src2),
|
||||
imm:$cc)))]>,
|
||||
XOP_4V, Sched<[WriteVecALULd, ReadAfterLd]>;
|
||||
XOP_4V, Sched<[WriteVecALU]>;
|
||||
def mi : IXOPi8<opc, MRMSrcMem, (outs VR128:$dst),
|
||||
(ins VR128:$src1, i128mem:$src2, XOPCC:$cc),
|
||||
!strconcat("vpcom${cc}", Suffix,
|
||||
|
@ -245,7 +245,7 @@ multiclass xopvpcom<bits<8> opc, string Suffix, SDNode OpNode, ValueType vt128>
|
|||
(ins VR128:$src1, VR128:$src2, u8imm:$src3),
|
||||
!strconcat("vpcom", Suffix,
|
||||
"\t{$src3, $src2, $src1, $dst|$dst, $src1, $src2, $src3}"),
|
||||
[]>, XOP_4V, Sched<[WriteVecALULd, ReadAfterLd]>;
|
||||
[]>, XOP_4V, Sched<[WriteVecALU]>;
|
||||
let mayLoad = 1 in
|
||||
def mi_alt : IXOPi8<opc, MRMSrcMem, (outs VR128:$dst),
|
||||
(ins VR128:$src1, i128mem:$src2, u8imm:$src3),
|
||||
|
|
|
@ -147,10 +147,10 @@ define void @test_vpcom(<2 x i64> %a0, <2 x i64> %a1, <2 x i64> *%a2) {
|
|||
; GENERIC-LABEL: test_vpcom:
|
||||
; GENERIC: # %bb.0:
|
||||
; GENERIC-NEXT: #APP
|
||||
; GENERIC-NEXT: vpcomb $3, %xmm1, %xmm0, %xmm0 # sched: [7:1.00]
|
||||
; GENERIC-NEXT: vpcomd $3, %xmm1, %xmm0, %xmm0 # sched: [7:1.00]
|
||||
; GENERIC-NEXT: vpcomq $3, %xmm1, %xmm0, %xmm0 # sched: [7:1.00]
|
||||
; GENERIC-NEXT: vpcomw $3, %xmm1, %xmm0, %xmm0 # sched: [7:1.00]
|
||||
; GENERIC-NEXT: vpcomb $3, %xmm1, %xmm0, %xmm0 # sched: [3:1.00]
|
||||
; GENERIC-NEXT: vpcomd $3, %xmm1, %xmm0, %xmm0 # sched: [3:1.00]
|
||||
; GENERIC-NEXT: vpcomq $3, %xmm1, %xmm0, %xmm0 # sched: [3:1.00]
|
||||
; GENERIC-NEXT: vpcomw $3, %xmm1, %xmm0, %xmm0 # sched: [3:1.00]
|
||||
; GENERIC-NEXT: vpcomb $3, (%rdi), %xmm0, %xmm0 # sched: [7:1.00]
|
||||
; GENERIC-NEXT: vpcomd $3, (%rdi), %xmm0, %xmm0 # sched: [7:1.00]
|
||||
; GENERIC-NEXT: vpcomq $3, (%rdi), %xmm0, %xmm0 # sched: [7:1.00]
|
||||
|
@ -179,10 +179,10 @@ define void @test_vpcomu(<2 x i64> %a0, <2 x i64> %a1, <2 x i64> *%a2) {
|
|||
; GENERIC-LABEL: test_vpcomu:
|
||||
; GENERIC: # %bb.0:
|
||||
; GENERIC-NEXT: #APP
|
||||
; GENERIC-NEXT: vpcomub $3, %xmm1, %xmm0, %xmm0 # sched: [7:1.00]
|
||||
; GENERIC-NEXT: vpcomud $3, %xmm1, %xmm0, %xmm0 # sched: [7:1.00]
|
||||
; GENERIC-NEXT: vpcomuq $3, %xmm1, %xmm0, %xmm0 # sched: [7:1.00]
|
||||
; GENERIC-NEXT: vpcomuw $3, %xmm1, %xmm0, %xmm0 # sched: [7:1.00]
|
||||
; GENERIC-NEXT: vpcomub $3, %xmm1, %xmm0, %xmm0 # sched: [3:1.00]
|
||||
; GENERIC-NEXT: vpcomud $3, %xmm1, %xmm0, %xmm0 # sched: [3:1.00]
|
||||
; GENERIC-NEXT: vpcomuq $3, %xmm1, %xmm0, %xmm0 # sched: [3:1.00]
|
||||
; GENERIC-NEXT: vpcomuw $3, %xmm1, %xmm0, %xmm0 # sched: [3:1.00]
|
||||
; GENERIC-NEXT: vpcomub $3, (%rdi), %xmm0, %xmm0 # sched: [7:1.00]
|
||||
; GENERIC-NEXT: vpcomud $3, (%rdi), %xmm0, %xmm0 # sched: [7:1.00]
|
||||
; GENERIC-NEXT: vpcomuq $3, (%rdi), %xmm0, %xmm0 # sched: [7:1.00]
|
||||
|
|
Loading…
Reference in New Issue