diff options
| author | Adam Nemet <anemet@apple.com> | 2014-10-08 23:25:31 +0000 |
|---|---|---|
| committer | Adam Nemet <anemet@apple.com> | 2014-10-08 23:25:31 +0000 |
| commit | 0937723b49904aeef8b7bdaea69193809b750375 (patch) | |
| tree | da8b3f3fa5d77bf34eabcbef2804f0a0be26dca3 /llvm | |
| parent | 5068d0f8e85c340c3f9becdb4f536268148fe243 (diff) | |
| download | bcm5719-llvm-0937723b49904aeef8b7bdaea69193809b750375.tar.gz bcm5719-llvm-0937723b49904aeef8b7bdaea69193809b750375.zip | |
[AVX512] Move DAG for all-zero node to X86VectorVTInfo
No functional change.
No change in X86.td.expanded except for the appearance of the new attributes.
The new attributes will be used in the subsequent patch.
llvm-svn: 219360
Diffstat (limited to 'llvm')
| -rw-r--r-- | llvm/lib/Target/X86/X86InstrAVX512.td | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/llvm/lib/Target/X86/X86InstrAVX512.td b/llvm/lib/Target/X86/X86InstrAVX512.td index c7126296c30..4930db9563d 100644 --- a/llvm/lib/Target/X86/X86InstrAVX512.td +++ b/llvm/lib/Target/X86/X86InstrAVX512.td @@ -79,6 +79,11 @@ class X86VectorVTInfo<int NumElts, ValueType EltVT, RegisterClass rc, Domain ExeDomain = !if (!eq (EltTypeName, "f32"), SSEPackedSingle, !if (!eq (EltTypeName, "f64"), SSEPackedDouble, SSEPackedInt)); + + // A vector type of the same width with element type i32. This is used to + // create the canonical constant zero node ImmAllZerosV. + ValueType i32VT = !cast<ValueType>("v" # !srl(Size, 5) # "i32"); + dag ImmAllZerosV = (VT (bitconvert (i32VT immAllZerosV))); } def v64i8_info : X86VectorVTInfo<64, i8, VR512, "b">; @@ -171,9 +176,7 @@ multiclass AVX512_masking_common<bits<8> O, Format F, X86VectorVTInfo _, [(set _.RC:$dst, RHS)], [(set _.RC:$dst, MaskingRHS)], [(set _.RC:$dst, - (vselect _.KRCWM:$mask, RHS, - (_.VT (bitconvert - (v16i32 immAllZerosV)))))], + (vselect _.KRCWM:$mask, RHS, _.ImmAllZerosV))], MaskingConstraint, NoItinerary, IsCommutable>; // This multiclass generates the unconditional/non-masking, the masking and |

