[PATCH] D45204: [X86][MIPS][ARM] New machine instruction property 'isMoveReg'
Craig Topper via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Wed Apr 11 10:42:44 PDT 2018
craig.topper added inline comments.
================
Comment at: lib/Target/X86/X86InstrAVX512.td:2771
let Predicates = [HasBWI] in {
+ let isMoveReg = 0 in
defm KMOVD : avx512_mask_mov<0x90, 0x90, 0x91, "kmovd", VK32, v32i1,i32mem>,
----------------
Why is it disabled for this class and KMOVB above?
================
Comment at: lib/Target/X86/X86InstrAVX512.td:3243
let hasSideEffects = 0 in {
def rr : AVX512PI<opc, MRMSrcReg, (outs _.RC:$dst), (ins _.RC:$src),
!strconcat(OpcodeStr, "\t{$src, $dst|$dst, $src}"), [],
----------------
This should be tagged I think.
================
Comment at: lib/Target/X86/X86InstrAVX512.td:3323
SDPatternOperator SelectOprr = vselect> {
- let Predicates = [prd] in
defm Z : avx512_load<opc, OpcodeStr, SSE_MOVU, _.info512, _.info512.LdFrag,
----------------
Why was this line deleted?
================
Comment at: lib/Target/X86/X86InstrAVX512.td:3343
let hasSideEffects = 0 in {
def rr_REV : AVX512PI<opc, MRMDestReg, (outs _.RC:$dst), (ins _.RC:$src),
OpcodeStr # ".s\t{$src, $dst|$dst, $src}",
----------------
This should be tagged I think.
================
Comment at: lib/Target/X86/X86InstrInfo.td:1616
SchedRW = [WriteMove] in {
def MOV8rr_REV : I<0x8A, MRMSrcReg, (outs GR8:$dst), (ins GR8:$src),
"mov{b}\t{$src, $dst|$dst, $src}", [], IIC_MOV>,
----------------
What about these?
================
Comment at: lib/Target/X86/X86InstrMMX.td:295
let isCodeGenOnly = 1, ForceDisassemble = 1, hasSideEffects = 0 in {
def MMX_MOVQ64rr_REV : MMXI<0x7F, MRMDestReg, (outs VR64:$dst), (ins VR64:$src),
"movq\t{$src, $dst|$dst, $src}", [],
----------------
Why isn't MMX_MOVQ64rr_REV tagged?
================
Comment at: lib/Target/X86/X86InstrSSE.td:650
let hasSideEffects = 0 in
def rr : PI<opc, MRMSrcReg, (outs RC:$dst), (ins RC:$src),
!strconcat(asm, "\t{$src, $dst|$dst, $src}"), [], itins.rr, d>,
----------------
Shouldn't this be move reg?
================
Comment at: lib/Target/X86/X86InstrSSE.td:743
SchedRW = [WriteFShuffle] in {
+ let isMoveReg = 1 in
def VMOVAPSrr_REV : VPSI<0x29, MRMDestReg, (outs VR128:$dst),
----------------
Why is this only on VMOVAPSrr_REV and not the 3 following instructions?
https://reviews.llvm.org/D45204
More information about the llvm-commits
mailing list