mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-07-24 22:24:54 +00:00
Fix PR11422.
This was a bug in keeping track of the available domains when merging domain values. The wrong domain mask caused ExecutionDepsFix to try to move VANDPSYrr to the integer domain which is only available in AVX2. Also add an assertion to catch future attempts at emitting AVX2 instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145096 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -3606,8 +3606,11 @@ void X86InstrInfo::setExecutionDomain(MachineInstr *MI, unsigned Domain) const {
|
||||
uint16_t dom = (MI->getDesc().TSFlags >> X86II::SSEDomainShift) & 3;
|
||||
assert(dom && "Not an SSE instruction");
|
||||
const unsigned *table = lookup(MI->getOpcode(), dom);
|
||||
if (!table) // try the other table
|
||||
if (!table) { // try the other table
|
||||
assert((TM.getSubtarget<X86Subtarget>().hasAVX2() || Domain < 3) &&
|
||||
"256-bit vector operations only available in AVX2");
|
||||
table = lookupAVX2(MI->getOpcode(), dom);
|
||||
}
|
||||
assert(table && "Cannot change domain");
|
||||
MI->setDesc(get(table[Domain-1]));
|
||||
}
|
||||
|
Reference in New Issue
Block a user