diff options
author | shadchin <shadchin@yandex-team.ru> | 2022-02-10 16:44:39 +0300 |
---|---|---|
committer | Daniil Cherednik <dcherednik@yandex-team.ru> | 2022-02-10 16:44:39 +0300 |
commit | e9656aae26e0358d5378e5b63dcac5c8dbe0e4d0 (patch) | |
tree | 64175d5cadab313b3e7039ebaa06c5bc3295e274 /contrib/libs/llvm12/include/llvm/Target/GlobalISel/SelectionDAGCompat.td | |
parent | 2598ef1d0aee359b4b6d5fdd1758916d5907d04f (diff) | |
download | ydb-e9656aae26e0358d5378e5b63dcac5c8dbe0e4d0.tar.gz |
Restoring authorship annotation for <shadchin@yandex-team.ru>. Commit 2 of 2.
Diffstat (limited to 'contrib/libs/llvm12/include/llvm/Target/GlobalISel/SelectionDAGCompat.td')
-rw-r--r-- | contrib/libs/llvm12/include/llvm/Target/GlobalISel/SelectionDAGCompat.td | 54 |
1 files changed, 27 insertions, 27 deletions
diff --git a/contrib/libs/llvm12/include/llvm/Target/GlobalISel/SelectionDAGCompat.td b/contrib/libs/llvm12/include/llvm/Target/GlobalISel/SelectionDAGCompat.td index 4520354169..6fb8a6b15d 100644 --- a/contrib/libs/llvm12/include/llvm/Target/GlobalISel/SelectionDAGCompat.td +++ b/contrib/libs/llvm12/include/llvm/Target/GlobalISel/SelectionDAGCompat.td @@ -26,8 +26,8 @@ class GINodeEquiv<Instruction i, SDNode node> { // SelectionDAG has separate nodes for atomic and non-atomic memory operations // (ISD::LOAD, ISD::ATOMIC_LOAD, ISD::STORE, ISD::ATOMIC_STORE) but GlobalISel // stores this information in the MachineMemoryOperand. - bit CheckMMOIsNonAtomic = false; - bit CheckMMOIsAtomic = false; + bit CheckMMOIsNonAtomic = false; + bit CheckMMOIsAtomic = false; // SelectionDAG has one node for all loads and uses predicates to // differentiate them. GlobalISel on the other hand uses separate opcodes. @@ -52,8 +52,8 @@ def : GINodeEquiv<G_BITCAST, bitconvert>; def : GINodeEquiv<G_CONSTANT, imm>; def : GINodeEquiv<G_FCONSTANT, fpimm>; def : GINodeEquiv<G_IMPLICIT_DEF, undef>; -def : GINodeEquiv<G_FRAME_INDEX, frameindex>; -def : GINodeEquiv<G_BLOCK_ADDR, blockaddress>; +def : GINodeEquiv<G_FRAME_INDEX, frameindex>; +def : GINodeEquiv<G_BLOCK_ADDR, blockaddress>; def : GINodeEquiv<G_ADD, add>; def : GINodeEquiv<G_SUB, sub>; def : GINodeEquiv<G_MUL, mul>; @@ -73,16 +73,16 @@ def : GINodeEquiv<G_SADDSAT, saddsat>; def : GINodeEquiv<G_UADDSAT, uaddsat>; def : GINodeEquiv<G_SSUBSAT, ssubsat>; def : GINodeEquiv<G_USUBSAT, usubsat>; -def : GINodeEquiv<G_SSHLSAT, sshlsat>; -def : GINodeEquiv<G_USHLSAT, ushlsat>; -def : GINodeEquiv<G_SMULFIX, smulfix>; -def : GINodeEquiv<G_UMULFIX, umulfix>; -def : GINodeEquiv<G_SMULFIXSAT, smulfixsat>; -def : GINodeEquiv<G_UMULFIXSAT, umulfixsat>; -def : GINodeEquiv<G_SDIVFIX, sdivfix>; -def : GINodeEquiv<G_UDIVFIX, udivfix>; -def : GINodeEquiv<G_SDIVFIXSAT, sdivfixsat>; -def : GINodeEquiv<G_UDIVFIXSAT, udivfixsat>; +def : GINodeEquiv<G_SSHLSAT, sshlsat>; +def : GINodeEquiv<G_USHLSAT, ushlsat>; +def : GINodeEquiv<G_SMULFIX, smulfix>; +def : GINodeEquiv<G_UMULFIX, umulfix>; +def : GINodeEquiv<G_SMULFIXSAT, smulfixsat>; +def : GINodeEquiv<G_UMULFIXSAT, umulfixsat>; +def : GINodeEquiv<G_SDIVFIX, sdivfix>; +def : GINodeEquiv<G_UDIVFIX, udivfix>; +def : GINodeEquiv<G_SDIVFIXSAT, sdivfixsat>; +def : GINodeEquiv<G_UDIVFIXSAT, udivfixsat>; def : GINodeEquiv<G_SELECT, select>; def : GINodeEquiv<G_FNEG, fneg>; def : GINodeEquiv<G_FPEXT, fpextend>; @@ -116,7 +116,7 @@ def : GINodeEquiv<G_CTTZ, cttz>; def : GINodeEquiv<G_CTLZ_ZERO_UNDEF, ctlz_zero_undef>; def : GINodeEquiv<G_CTTZ_ZERO_UNDEF, cttz_zero_undef>; def : GINodeEquiv<G_CTPOP, ctpop>; -def : GINodeEquiv<G_EXTRACT_VECTOR_ELT, extractelt>; +def : GINodeEquiv<G_EXTRACT_VECTOR_ELT, extractelt>; def : GINodeEquiv<G_CONCAT_VECTORS, concat_vectors>; def : GINodeEquiv<G_BUILD_VECTOR, build_vector>; def : GINodeEquiv<G_FCEIL, fceil>; @@ -129,13 +129,13 @@ def : GINodeEquiv<G_FRINT, frint>; def : GINodeEquiv<G_FNEARBYINT, fnearbyint>; def : GINodeEquiv<G_INTRINSIC_TRUNC, ftrunc>; def : GINodeEquiv<G_INTRINSIC_ROUND, fround>; -def : GINodeEquiv<G_INTRINSIC_LRINT, lrint>; +def : GINodeEquiv<G_INTRINSIC_LRINT, lrint>; def : GINodeEquiv<G_FCOPYSIGN, fcopysign>; def : GINodeEquiv<G_SMIN, smin>; def : GINodeEquiv<G_SMAX, smax>; def : GINodeEquiv<G_UMIN, umin>; def : GINodeEquiv<G_UMAX, umax>; -def : GINodeEquiv<G_ABS, abs>; +def : GINodeEquiv<G_ABS, abs>; def : GINodeEquiv<G_FMINNUM, fminnum>; def : GINodeEquiv<G_FMAXNUM, fmaxnum>; def : GINodeEquiv<G_FMINNUM_IEEE, fminnum_ieee>; @@ -158,7 +158,7 @@ def : GINodeEquiv<G_STRICT_FSQRT, strict_fsqrt>; // separate nodes for them. This GINodeEquiv maps the non-atomic loads to // G_LOAD with a non-atomic MachineMemOperand. def : GINodeEquiv<G_LOAD, ld> { - let CheckMMOIsNonAtomic = true; + let CheckMMOIsNonAtomic = true; let IfSignExtend = G_SEXTLOAD; let IfZeroExtend = G_ZEXTLOAD; } @@ -174,19 +174,19 @@ def : GINodeEquiv<G_ICMP, setcc> { // G_STORE handles both atomic and non-atomic stores where as SelectionDAG had // separate nodes for them. This GINodeEquiv maps the non-atomic stores to // G_STORE with a non-atomic MachineMemOperand. -def : GINodeEquiv<G_STORE, st> { let CheckMMOIsNonAtomic = true; } +def : GINodeEquiv<G_STORE, st> { let CheckMMOIsNonAtomic = true; } def : GINodeEquiv<G_LOAD, atomic_load> { - let CheckMMOIsNonAtomic = false; - let CheckMMOIsAtomic = true; + let CheckMMOIsNonAtomic = false; + let CheckMMOIsAtomic = true; +} + +// Operands are swapped for atomic_store vs. regular store +def : GINodeEquiv<G_STORE, atomic_store> { + let CheckMMOIsNonAtomic = false; + let CheckMMOIsAtomic = true; } -// Operands are swapped for atomic_store vs. regular store -def : GINodeEquiv<G_STORE, atomic_store> { - let CheckMMOIsNonAtomic = false; - let CheckMMOIsAtomic = true; -} - def : GINodeEquiv<G_ATOMIC_CMPXCHG, atomic_cmp_swap>; def : GINodeEquiv<G_ATOMICRMW_XCHG, atomic_swap>; def : GINodeEquiv<G_ATOMICRMW_ADD, atomic_load_add>; |