From: Craig Topper Date: Fri, 31 May 2019 05:20:27 +0000 (+0000) Subject: [X86] Correct the ins operand order for MASKPAIR16STORE to match other store instruct... X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=c096c07323e4dbb4003d37aca1caec86ff3c0444;p=llvm [X86] Correct the ins operand order for MASKPAIR16STORE to match other store instructions. This makes the 5 address operands come first. And the data operand comes last. This matches the operand order the instruction is created with. It's also the expected order in X86MCInstLower. So everything appeared to work, but the operands didn't match their declared type. Fixes a -verify-machineinstrs failure. Also remove the isel patterns from these instructions since they should only be used for stack spills and reloads. I'm not even sure what types the patterns were looking for to match. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@362193 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Target/X86/X86InstrAVX512.td b/lib/Target/X86/X86InstrAVX512.td index 20380bb8448..d93059b44f3 100644 --- a/lib/Target/X86/X86InstrAVX512.td +++ b/lib/Target/X86/X86InstrAVX512.td @@ -12561,10 +12561,10 @@ defm VP4DPWSSDSrm : AVX512_maskable_3src_in_asm<0x53, MRMSrcMem, v16i32_info, } let hasSideEffects = 0 in { - def MASKPAIR16STORE : PseudoI<(outs), (ins VK16PAIR:$src, anymem:$dst), - [(store VK16PAIR:$src, addr:$dst)]>; - def MASKPAIR16LOAD : PseudoI<(outs VK16PAIR:$dst), (ins anymem:$src), - [(set VK16PAIR:$dst, (load addr:$src))]>; + let mayStore = 1 in + def MASKPAIR16STORE : PseudoI<(outs), (ins anymem:$dst, VK16PAIR:$src), []>; + let mayLoad = 1 in + def MASKPAIR16LOAD : PseudoI<(outs VK16PAIR:$dst), (ins anymem:$src), []>; } //===----------------------------------------------------------------------===// diff --git a/test/CodeGen/X86/vp2intersect_multiple_pairs.ll b/test/CodeGen/X86/vp2intersect_multiple_pairs.ll index a38d95b6f94..afd213b53a0 100644 --- a/test/CodeGen/X86/vp2intersect_multiple_pairs.ll +++ b/test/CodeGen/X86/vp2intersect_multiple_pairs.ll @@ -1,6 +1,6 @@ ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py -; RUN: llc < %s -mtriple=i686-unknown-unknown -mattr=+avx512vp2intersect | FileCheck %s --check-prefixes=CHECK,X86 -; RUN: llc < %s -mtriple=x86_64-unknown-unknown -mattr=+avx512vp2intersect | FileCheck %s --check-prefixes=CHECK,X64 +; RUN: llc < %s -mtriple=i686-unknown-unknown -mattr=+avx512vp2intersect -verify-machineinstrs | FileCheck %s --check-prefixes=CHECK,X86 +; RUN: llc < %s -mtriple=x86_64-unknown-unknown -mattr=+avx512vp2intersect -verify-machineinstrs | FileCheck %s --check-prefixes=CHECK,X64 ; Test with more than four live mask pairs