forked from OSchip/llvm-project
Fix some issues in the f16c instructions.
llvm-svn: 156287
This commit is contained in:
parent
297e9c3091
commit
dbb98b4917
|
@ -7621,7 +7621,6 @@ let Defs = [YMM0, YMM1, YMM2, YMM3, YMM4, YMM5, YMM6, YMM7,
|
|||
// Half precision conversion instructions
|
||||
//===----------------------------------------------------------------------===//
|
||||
multiclass f16c_ph2ps<RegisterClass RC, X86MemOperand x86memop, Intrinsic Int> {
|
||||
let Predicates = [HasAVX, HasF16C] in {
|
||||
def rr : I<0x13, MRMSrcReg, (outs RC:$dst), (ins VR128:$src),
|
||||
"vcvtph2ps\t{$src, $dst|$dst, $src}",
|
||||
[(set RC:$dst, (Int VR128:$src))]>,
|
||||
|
@ -7630,27 +7629,26 @@ let Predicates = [HasAVX, HasF16C] in {
|
|||
def rm : I<0x13, MRMSrcMem, (outs RC:$dst), (ins x86memop:$src),
|
||||
"vcvtph2ps\t{$src, $dst|$dst, $src}", []>, T8, OpSize, VEX;
|
||||
}
|
||||
}
|
||||
|
||||
multiclass f16c_ps2ph<RegisterClass RC, X86MemOperand x86memop, Intrinsic Int> {
|
||||
let Predicates = [HasAVX, HasF16C] in {
|
||||
def rr : Ii8<0x1D, MRMDestReg, (outs VR128:$dst),
|
||||
(ins RC:$src1, i32i8imm:$src2),
|
||||
"vcvtps2ph\t{$src2, $src1, $dst|$dst, $src1, $src2}",
|
||||
[(set VR128:$dst, (Int RC:$src1, imm:$src2))]>,
|
||||
TA, OpSize, VEX;
|
||||
let neverHasSideEffects = 1, mayLoad = 1 in
|
||||
def mr : Ii8<0x1D, MRMDestMem, (outs x86memop:$dst),
|
||||
(ins RC:$src1, i32i8imm:$src2),
|
||||
let neverHasSideEffects = 1, mayStore = 1 in
|
||||
def mr : Ii8<0x1D, MRMDestMem, (outs),
|
||||
(ins x86memop:$dst, RC:$src1, i32i8imm:$src2),
|
||||
"vcvtps2ph\t{$src2, $src1, $dst|$dst, $src1, $src2}", []>,
|
||||
TA, OpSize, VEX;
|
||||
}
|
||||
}
|
||||
|
||||
defm VCVTPH2PS : f16c_ph2ps<VR128, f64mem, int_x86_vcvtph2ps_128>;
|
||||
defm VCVTPH2PSY : f16c_ph2ps<VR256, f128mem, int_x86_vcvtph2ps_256>;
|
||||
defm VCVTPS2PH : f16c_ps2ph<VR128, f64mem, int_x86_vcvtps2ph_128>;
|
||||
defm VCVTPS2PHY : f16c_ps2ph<VR256, f128mem, int_x86_vcvtps2ph_256>;
|
||||
let Predicates = [HasAVX, HasF16C] in {
|
||||
defm VCVTPH2PS : f16c_ph2ps<VR128, f64mem, int_x86_vcvtph2ps_128>;
|
||||
defm VCVTPH2PSY : f16c_ph2ps<VR256, f128mem, int_x86_vcvtph2ps_256>;
|
||||
defm VCVTPS2PH : f16c_ps2ph<VR128, f64mem, int_x86_vcvtps2ph_128>;
|
||||
defm VCVTPS2PHY : f16c_ps2ph<VR256, f128mem, int_x86_vcvtps2ph_256>;
|
||||
}
|
||||
|
||||
//===----------------------------------------------------------------------===//
|
||||
// AVX2 Instructions
|
||||
|
|
Loading…
Reference in New Issue