forked from OSchip/llvm-project
Fix the JIT encoding of cmp*ss, which aborts with this assertion currently:
X86CodeEmitter.cpp:378: failed assertion `0 && "Immediate size not set!"' I *think* this is right, but Evan, please verify. It also looks like CMPSDrr and maybe others are missing this info. Evan, plz investigate. llvm-svn: 45074
This commit is contained in:
parent
8e4847ee95
commit
dab6bd902e
|
@ -145,6 +145,8 @@ class FpI_<dag outs, dag ins, FPFormat fp, list<dag> pattern>
|
|||
|
||||
class SSI<bits<8> o, Format F, dag outs, dag ins, string asm, list<dag> pattern>
|
||||
: I<o, F, outs, ins, asm, pattern>, XS, Requires<[HasSSE1]>;
|
||||
class SSIi8<bits<8> o, Format F, dag outs, dag ins, string asm, list<dag> pattern>
|
||||
: Ii8<o, F, outs, ins, asm, pattern>, XS, Requires<[HasSSE1]>;
|
||||
class PSI<bits<8> o, Format F, dag outs, dag ins, string asm, list<dag> pattern>
|
||||
: I<o, F, outs, ins, asm, pattern>, TB, Requires<[HasSSE1]>;
|
||||
class PSIi8<bits<8> o, Format F, dag outs, dag ins, string asm,
|
||||
|
|
|
@ -385,10 +385,10 @@ let isTwoAddress = 1 in {
|
|||
|
||||
// Comparison instructions
|
||||
let isTwoAddress = 1 in {
|
||||
def CMPSSrr : SSI<0xC2, MRMSrcReg,
|
||||
def CMPSSrr : SSIi8<0xC2, MRMSrcReg,
|
||||
(outs FR32:$dst), (ins FR32:$src1, FR32:$src, SSECC:$cc),
|
||||
"cmp${cc}ss\t{$src, $dst|$dst, $src}", []>;
|
||||
def CMPSSrm : SSI<0xC2, MRMSrcMem,
|
||||
def CMPSSrm : SSIi8<0xC2, MRMSrcMem,
|
||||
(outs FR32:$dst), (ins FR32:$src1, f32mem:$src, SSECC:$cc),
|
||||
"cmp${cc}ss\t{$src, $dst|$dst, $src}", []>;
|
||||
}
|
||||
|
@ -405,12 +405,12 @@ def UCOMISSrm: PSI<0x2E, MRMSrcMem, (outs), (ins FR32:$src1, f32mem:$src2),
|
|||
|
||||
// Aliases to match intrinsics which expect XMM operand(s).
|
||||
let isTwoAddress = 1 in {
|
||||
def Int_CMPSSrr : SSI<0xC2, MRMSrcReg,
|
||||
def Int_CMPSSrr : SSIi8<0xC2, MRMSrcReg,
|
||||
(outs VR128:$dst), (ins VR128:$src1, VR128:$src, SSECC:$cc),
|
||||
"cmp${cc}ss\t{$src, $dst|$dst, $src}",
|
||||
[(set VR128:$dst, (int_x86_sse_cmp_ss VR128:$src1,
|
||||
VR128:$src, imm:$cc))]>;
|
||||
def Int_CMPSSrm : SSI<0xC2, MRMSrcMem,
|
||||
def Int_CMPSSrm : SSIi8<0xC2, MRMSrcMem,
|
||||
(outs VR128:$dst), (ins VR128:$src1, f32mem:$src, SSECC:$cc),
|
||||
"cmp${cc}ss\t{$src, $dst|$dst, $src}",
|
||||
[(set VR128:$dst, (int_x86_sse_cmp_ss VR128:$src1,
|
||||
|
|
Loading…
Reference in New Issue