/external/llvm/include/llvm/IR/ |
IntrinsicsMips.td | 29 Intrinsic<[llvm_v4i8_ty], [llvm_v4i8_ty, llvm_v4i8_ty], 32 Intrinsic<[llvm_v4i8_ty], [llvm_v4i8_ty, llvm_v4i8_ty], 35 Intrinsic<[llvm_v4i8_ty], [llvm_v4i8_ty, llvm_v4i8_ty], [IntrNoMem]>; 37 Intrinsic<[llvm_v4i8_ty], [llvm_v4i8_ty, llvm_v4i8_ty], [IntrNoMem]>; 40 Intrinsic<[mips_v2q15_ty], [mips_v2q15_ty, mips_v2q15_ty], 43 Intrinsic<[mips_v2q15_ty], [mips_v2q15_ty, mips_v2q15_ty], 46 Intrinsic<[mips_v2q15_ty], [mips_v2q15_ty, mips_v2q15_ty], [IntrNoMem]>; 48 Intrinsic<[mips_v2q15_ty], [mips_v2q15_ty, mips_v2q15_ty], [IntrNoMem]>; 51 Intrinsic<[llvm_i64_ty], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], 54 Intrinsic<[llvm_i64_ty], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty] [all...] |
CMakeLists.txt | 3 tablegen(LLVM Intrinsics.gen -gen-intrinsic)
|
IntrinsicsX86.td | 17 def int_x86_int : Intrinsic<[], [llvm_i8_ty]>; 24 Intrinsic<[llvm_i64_ty], [], []>; 26 Intrinsic<[llvm_i64_ty], [llvm_ptr_ty], [IntrReadWriteArgMem]>; 32 Intrinsic<[llvm_i64_ty], [llvm_i32_ty], []>; 40 Intrinsic<[llvm_x86mmx_ty], [llvm_x86mmx_ty, llvm_x86mmx_ty], 43 Intrinsic<[llvm_x86mmx_ty], [llvm_x86mmx_ty], [IntrNoMem]>; 45 Intrinsic<[llvm_x86mmx_ty], [llvm_x86mmx_ty, llvm_x86mmx_ty], 48 Intrinsic<[llvm_x86mmx_ty], [llvm_x86mmx_ty, llvm_x86mmx_ty], 51 Intrinsic<[llvm_x86mmx_ty], [llvm_x86mmx_ty, llvm_x86mmx_ty], 54 Intrinsic<[llvm_x86mmx_ty], [llvm_x86mmx_ty, llvm_x86mmx_ty] [all...] |
IntrinsicsXCore.td | 16 def int_xcore_bitrev : Intrinsic<[llvm_i32_ty],[llvm_i32_ty],[IntrNoMem]>, 18 def int_xcore_crc8 : Intrinsic<[llvm_i32_ty, llvm_i32_ty], 21 def int_xcore_crc32 : Intrinsic<[llvm_i32_ty], 24 def int_xcore_sext : Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty], 26 def int_xcore_zext : Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty], 28 def int_xcore_getid : Intrinsic<[llvm_i32_ty],[],[IntrNoMem]>, 30 def int_xcore_getps : Intrinsic<[llvm_i32_ty],[llvm_i32_ty]>, 32 def int_xcore_setps : Intrinsic<[],[llvm_i32_ty, llvm_i32_ty]>, 34 def int_xcore_geted : Intrinsic<[llvm_i32_ty],[]>; 35 def int_xcore_getet : Intrinsic<[llvm_i32_ty],[]> [all...] |
IntrinsicsNVVM.td | 21 Intrinsic<[llvm_i32_ty], [llvm_i32_ty], [IntrNoMem]>; 23 Intrinsic<[llvm_i32_ty], [llvm_i64_ty], [IntrNoMem]>; 26 Intrinsic<[llvm_i32_ty], [llvm_i32_ty], [IntrNoMem]>; 28 Intrinsic<[llvm_i32_ty], [llvm_i64_ty], [IntrNoMem]>; 31 Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], 39 Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty], 42 Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty], 46 Intrinsic<[llvm_i64_ty], [llvm_i64_ty, llvm_i64_ty], 49 Intrinsic<[llvm_i64_ty], [llvm_i64_ty, llvm_i64_ty], 53 Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty] [all...] |
IntrinsicsPowerPC.td | 21 def int_ppc_dcba : Intrinsic<[], [llvm_ptr_ty], []>; 22 def int_ppc_dcbf : Intrinsic<[], [llvm_ptr_ty], []>; 23 def int_ppc_dcbi : Intrinsic<[], [llvm_ptr_ty], []>; 24 def int_ppc_dcbst : Intrinsic<[], [llvm_ptr_ty], []>; 25 def int_ppc_dcbt : Intrinsic<[], [llvm_ptr_ty], 27 def int_ppc_dcbtst: Intrinsic<[], [llvm_ptr_ty], []>; 28 def int_ppc_dcbz : Intrinsic<[], [llvm_ptr_ty], []>; 29 def int_ppc_dcbzl : Intrinsic<[], [llvm_ptr_ty], []>; 32 def int_ppc_sync : Intrinsic<[], [], []>; 36 def int_ppc_mtctr : Intrinsic<[], [llvm_anyint_ty], []> [all...] |
IntrinsicsAArch64.td | 16 def int_aarch64_ldxr : Intrinsic<[llvm_i64_ty], [llvm_anyptr_ty]>; 17 def int_aarch64_ldaxr : Intrinsic<[llvm_i64_ty], [llvm_anyptr_ty]>; 18 def int_aarch64_stxr : Intrinsic<[llvm_i32_ty], [llvm_i64_ty, llvm_anyptr_ty]>; 19 def int_aarch64_stlxr : Intrinsic<[llvm_i32_ty], [llvm_i64_ty, llvm_anyptr_ty]>; 21 def int_aarch64_ldxp : Intrinsic<[llvm_i64_ty, llvm_i64_ty], [llvm_ptr_ty]>; 22 def int_aarch64_ldaxp : Intrinsic<[llvm_i64_ty, llvm_i64_ty], [llvm_ptr_ty]>; 23 def int_aarch64_stxp : Intrinsic<[llvm_i32_ty], 25 def int_aarch64_stlxp : Intrinsic<[llvm_i32_ty], 28 def int_aarch64_clrex : Intrinsic<[]>; 30 def int_aarch64_sdiv : Intrinsic<[llvm_anyint_ty], [LLVMMatchType<0> [all...] |
Intrinsics.td | 22 // Intr*Mem - Memory properties. An intrinsic is allowed to have at most one of 28 // IntrNoMem - The intrinsic does not access memory or have any other side 32 // IntrReadArgMem - This intrinsic reads only from memory that one of its 36 // IntrReadMem - This intrinsic reads from unspecified memory, so it cannot be 41 // IntrReadWriteArgMem - This intrinsic reads and writes only from memory that 47 // Commutative - This intrinsic is commutative: X op Y == Y op X. 50 // Throws - This intrinsic can throw. 53 // NoCapture - The specified argument pointer is not captured by the intrinsic. 59 // pointer by the intrinsic. 65 // intrinsic [all...] |
Intrinsics.h | 1 //===-- llvm/Instrinsics.h - LLVM Intrinsic Function Handling ---*- C++ -*-===// 10 // This file defines a set of enums which allow processing of intrinsic 31 /// Intrinsic Namespace - This namespace contains an enum with a value for 32 /// every intrinsic/builtin function known by LLVM. These enum values are 35 namespace Intrinsic { 39 // Get the intrinsic enums generated from Intrinsics.td 46 /// Intrinsic::getName(ID) - Return the LLVM name for an intrinsic, such as 50 /// Intrinsic::getType(ID) - Return the function type for an intrinsic [all...] |
IntrinsicsARM.td | 21 Intrinsic<[llvm_ptr_ty], [], [IntrNoMem]>; 27 Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty], 30 Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty], [IntrNoMem]>; 32 Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty], [IntrNoMem]>; 34 Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty], [IntrNoMem]>; 39 def int_arm_ldrex : Intrinsic<[llvm_i32_ty], [llvm_anyptr_ty]>; 40 def int_arm_strex : Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_anyptr_ty]>; 42 def int_arm_ldaex : Intrinsic<[llvm_i32_ty], [llvm_anyptr_ty]>; 43 def int_arm_stlex : Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_anyptr_ty]>; 45 def int_arm_clrex : Intrinsic<[]>; [all...] |
/external/chromium_org/third_party/mesa/src/src/gallium/drivers/radeon/ |
AMDGPUIntrinsics.td | 16 def int_AMDGPU_load_const : Intrinsic<[llvm_float_ty], [llvm_i32_ty], [IntrNoMem]>; 17 def int_AMDGPU_load_imm : Intrinsic<[llvm_v4f32_ty], [llvm_i32_ty], [IntrNoMem]>; 18 def int_AMDGPU_reserve_reg : Intrinsic<[], [llvm_i32_ty], [IntrNoMem]>; 19 def int_AMDGPU_store_output : Intrinsic<[], [llvm_float_ty, llvm_i32_ty], []>; 20 def int_AMDGPU_swizzle : Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty, llvm_i32_ty], [IntrNoMem]>; 22 def int_AMDGPU_arl : Intrinsic<[llvm_i32_ty], [llvm_float_ty], [IntrNoMem]>; 23 def int_AMDGPU_cndlt : Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty, llvm_float_ty], [IntrNoMem]>; 24 def int_AMDGPU_cos : Intrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>; 25 def int_AMDGPU_div : Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty], [IntrNoMem]>; 26 def int_AMDGPU_dp4 : Intrinsic<[llvm_float_ty], [llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]> [all...] |
SIIntrinsics.td | 1 //===-- SIIntrinsics.td - SI Intrinsic defs ----------------*- tablegen -*-===// 10 // SI Intrinsic Definitions 17 def int_SI_packf16 : Intrinsic <[llvm_i32_ty], [llvm_float_ty, llvm_float_ty], [IntrNoMem]>; 18 def int_SI_export : Intrinsic <[], [llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], []>; 19 /* XXX: We may need a seperate intrinsic here for loading integer values */ 20 def int_SI_load_const : Intrinsic <[llvm_float_ty], [llvm_i64_ty, llvm_i32_ty], []>; 21 def int_SI_vs_load_buffer_index : Intrinsic <[llvm_i32_ty], [], [IntrNoMem]>; 22 def int_SI_vs_load_input : Intrinsic <[llvm_v4f32_ty], [llvm_v4i32_ty, llvm_i16_ty, llvm_i32_ty], []> ; 24 def int_SI_sample : Intrinsic <[llvm_v4f32_ty], [llvm_i32_ty, llvm_v4f32_ty, llvm_v8i32_ty, llvm_v4i32_ty]>; 28 def int_SI_set_M0 : Intrinsic <[llvm_i32_ty], [llvm_i32_ty]> [all...] |
AMDILIntrinsics.td | 14 // Intrinsic classes 20 Intrinsic<[llvm_i64_ty], [], []>; 22 Intrinsic<[llvm_i32_ty], [], []>; 24 Intrinsic<[llvm_i32_ty], [], []>; 26 Intrinsic<[llvm_anyint_ty], [LLVMMatchType<0>], [IntrNoMem]>; 28 Intrinsic<[llvm_anyfloat_ty], [LLVMMatchType<0>], [IntrNoMem]>; 30 Intrinsic<[llvm_anyint_ty], [llvm_anyfloat_ty], [IntrNoMem]>; 32 Intrinsic<[llvm_anyfloat_ty], [llvm_anyint_ty], [IntrNoMem]>; 34 Intrinsic<[], [llvm_anyint_ty], []>; 36 Intrinsic<[], [llvm_anyfloat_ty], []> [all...] |
/external/mesa3d/src/gallium/drivers/radeon/ |
AMDGPUIntrinsics.td | 16 def int_AMDGPU_load_const : Intrinsic<[llvm_float_ty], [llvm_i32_ty], [IntrNoMem]>; 17 def int_AMDGPU_load_imm : Intrinsic<[llvm_v4f32_ty], [llvm_i32_ty], [IntrNoMem]>; 18 def int_AMDGPU_reserve_reg : Intrinsic<[], [llvm_i32_ty], [IntrNoMem]>; 19 def int_AMDGPU_store_output : Intrinsic<[], [llvm_float_ty, llvm_i32_ty], []>; 20 def int_AMDGPU_swizzle : Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty, llvm_i32_ty], [IntrNoMem]>; 22 def int_AMDGPU_arl : Intrinsic<[llvm_i32_ty], [llvm_float_ty], [IntrNoMem]>; 23 def int_AMDGPU_cndlt : Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty, llvm_float_ty], [IntrNoMem]>; 24 def int_AMDGPU_cos : Intrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>; 25 def int_AMDGPU_div : Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty], [IntrNoMem]>; 26 def int_AMDGPU_dp4 : Intrinsic<[llvm_float_ty], [llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]> [all...] |
SIIntrinsics.td | 1 //===-- SIIntrinsics.td - SI Intrinsic defs ----------------*- tablegen -*-===// 10 // SI Intrinsic Definitions 17 def int_SI_packf16 : Intrinsic <[llvm_i32_ty], [llvm_float_ty, llvm_float_ty], [IntrNoMem]>; 18 def int_SI_export : Intrinsic <[], [llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], []>; 19 /* XXX: We may need a seperate intrinsic here for loading integer values */ 20 def int_SI_load_const : Intrinsic <[llvm_float_ty], [llvm_i64_ty, llvm_i32_ty], []>; 21 def int_SI_vs_load_buffer_index : Intrinsic <[llvm_i32_ty], [], [IntrNoMem]>; 22 def int_SI_vs_load_input : Intrinsic <[llvm_v4f32_ty], [llvm_v4i32_ty, llvm_i16_ty, llvm_i32_ty], []> ; 24 def int_SI_sample : Intrinsic <[llvm_v4f32_ty], [llvm_i32_ty, llvm_v4f32_ty, llvm_v8i32_ty, llvm_v4i32_ty]>; 28 def int_SI_set_M0 : Intrinsic <[llvm_i32_ty], [llvm_i32_ty]> [all...] |
AMDILIntrinsics.td | 14 // Intrinsic classes 20 Intrinsic<[llvm_i64_ty], [], []>; 22 Intrinsic<[llvm_i32_ty], [], []>; 24 Intrinsic<[llvm_i32_ty], [], []>; 26 Intrinsic<[llvm_anyint_ty], [LLVMMatchType<0>], [IntrNoMem]>; 28 Intrinsic<[llvm_anyfloat_ty], [LLVMMatchType<0>], [IntrNoMem]>; 30 Intrinsic<[llvm_anyint_ty], [llvm_anyfloat_ty], [IntrNoMem]>; 32 Intrinsic<[llvm_anyfloat_ty], [llvm_anyint_ty], [IntrNoMem]>; 34 Intrinsic<[], [llvm_anyint_ty], []>; 36 Intrinsic<[], [llvm_anyfloat_ty], []> [all...] |
/external/llvm/lib/Target/R600/ |
AMDGPUIntrinsics.td | 16 def int_AMDGPU_load_const : Intrinsic<[llvm_float_ty], [llvm_i32_ty], [IntrNoMem]>; 17 def int_AMDGPU_load_imm : Intrinsic<[llvm_v4f32_ty], [llvm_i32_ty], [IntrNoMem]>; 18 def int_AMDGPU_reserve_reg : Intrinsic<[], [llvm_i32_ty], [IntrNoMem]>; 19 def int_AMDGPU_store_output : Intrinsic<[], [llvm_float_ty, llvm_i32_ty], []>; 20 def int_AMDGPU_swizzle : Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty, llvm_i32_ty], [IntrNoMem]>; 21 def int_AMDGPU_abs : Intrinsic<[llvm_i32_ty], [llvm_i32_ty], [IntrNoMem]>; 22 def int_AMDGPU_arl : Intrinsic<[llvm_i32_ty], [llvm_float_ty], [IntrNoMem]>; 23 def int_AMDGPU_cndlt : Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty, llvm_float_ty], [IntrNoMem]>; 24 def int_AMDGPU_div : Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty], [IntrNoMem]>; 25 def int_AMDGPU_fract : Intrinsic<[llvm_anyfloat_ty], [LLVMMatchType<0>], [IntrNoMem]> [all...] |
R600Intrinsics.td | 10 // R600 Intrinsic Definitions 16 Intrinsic<[llvm_v4f32_ty], [ 29 Intrinsic<[llvm_v4i32_ty], [ 43 Intrinsic<[llvm_float_ty], [llvm_i32_ty], [IntrNoMem]>; 45 Intrinsic<[llvm_float_ty], [llvm_i32_ty, llvm_i32_ty], [IntrNoMem]>; 47 Intrinsic<[llvm_v4f32_ty], [llvm_i32_ty], [IntrNoMem]>; 49 Intrinsic<[llvm_v2f32_ty], [llvm_i32_ty, llvm_float_ty, llvm_float_ty], [IntrNoMem]>; 51 Intrinsic<[llvm_v2f32_ty], [llvm_i32_ty, llvm_float_ty, llvm_float_ty], [IntrNoMem]>; 53 Intrinsic<[llvm_v4f32_ty], [llvm_i32_ty, llvm_i32_ty], [IntrNoMem]>; 66 Intrinsic<[], [llvm_v4f32_ty, llvm_i32_ty, llvm_i32_ty], []> [all...] |
SIIntrinsics.td | 1 //===-- SIIntrinsics.td - SI Intrinsic defs ----------------*- tablegen -*-===// 10 // SI Intrinsic Definitions 17 def int_SI_tid : Intrinsic <[llvm_i32_ty], [], [IntrNoMem]>; 18 def int_SI_packf16 : Intrinsic <[llvm_i32_ty], [llvm_float_ty, llvm_float_ty], [IntrNoMem]>; 19 def int_SI_export : Intrinsic <[], [llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], []>; 20 def int_SI_load_const : Intrinsic <[llvm_float_ty], [llvm_anyint_ty, llvm_i32_ty], [IntrNoMem]>; 21 def int_SI_vs_load_input : Intrinsic <[llvm_v4f32_ty], [llvm_anyint_ty, llvm_i16_ty, llvm_i32_ty], [IntrNoMem]> ; 24 def int_SI_tbuffer_store : Intrinsic < 42 def int_SI_buffer_load_dword : Intrinsic < 55 def int_SI_sendmsg : Intrinsic <[], [llvm_i32_ty, llvm_i32_ty], [IntrNoMem]> [all...] |
/external/llvm/include/llvm/Transforms/Utils/ |
VectorUtils.h | 23 /// \brief Identify if the intrinsic is trivially vectorizable. 25 /// This method returns true if the intrinsic's argument types are all 26 /// scalars for the scalar form of the intrinsic and all vectors for 27 /// the vector form of the intrinsic. 28 static inline bool isTriviallyVectorizable(Intrinsic::ID ID) { 30 case Intrinsic::sqrt: 31 case Intrinsic::sin: 32 case Intrinsic::cos: 33 case Intrinsic::exp: 34 case Intrinsic::exp2 [all...] |
/external/llvm/test/TableGen/ |
intrinsic-order.td | 1 // RUN: llvm-tblgen -gen-intrinsic %s | FileCheck %s 16 class Intrinsic<string name, list<LLVMType> param_types = []> { 29 // Make sure an intrinsic name that is a prefix of another is checked after the 32 // CHECK: if (NameR.startswith("oo.bar.")) return Intrinsic::foo_bar; 33 // CHECK: if (NameR.startswith("oo.")) return Intrinsic::foo; 35 def int_foo : Intrinsic<"llvm.foo", [llvm_anyint_ty]>; 36 def int_foo_bar : Intrinsic<"llvm.foo.bar", [llvm_anyint_ty]>;
|
MultiPat.td | 12 class Intrinsic<string name> { 85 def int_x86_sse2_add_ps : Intrinsic<"addps">; 86 def int_x86_sse2_add_pd : Intrinsic<"addpd">; 87 def INTRINSIC : Intrinsic<"Dummy">; 92 class Base<bits<8> opcode, dag opnds, dag iopnds, string asmstr, Intrinsic intr, 97 !subst(INTRINSIC, intr, 102 !subst(INTRINSIC, intr, 108 !strconcat(asmstr, "\t$dst, $src1, $src2"), !cast<Intrinsic>(!subst("SUFFIX", "_ps", intr)), patterns>; 111 !strconcat(asmstr, "\t$dst, $src1, $src2"), !cast<Intrinsic>(!subst("SUFFIX", "_pd", intr)), patterns> [all...] |
intrinsic-varargs.td | 1 // RUN: llvm-tblgen -gen-intrinsic %s | FileCheck %s 16 class Intrinsic<string name, list<LLVMType> param_types = []> { 30 def int_foo : Intrinsic<"llvm.foo", [llvm_vararg_ty]>;
|
/art/compiler/dex/quick/ |
dex_file_method_inliner.cc | 289 #define INTRINSIC(c, n, p, o, d) \ 292 INTRINSIC(JavaLangDouble, DoubleToRawLongBits, D_J, kIntrinsicDoubleCvt, 0), 293 INTRINSIC(JavaLangDouble, LongBitsToDouble, J_D, kIntrinsicDoubleCvt, 0), 294 INTRINSIC(JavaLangFloat, FloatToRawIntBits, F_I, kIntrinsicFloatCvt, 0), 295 INTRINSIC(JavaLangFloat, IntBitsToFloat, I_F, kIntrinsicFloatCvt, 0), 297 INTRINSIC(JavaLangInteger, ReverseBytes, I_I, kIntrinsicReverseBytes, k32), 298 INTRINSIC(JavaLangLong, ReverseBytes, J_J, kIntrinsicReverseBytes, k64), 299 INTRINSIC(JavaLangShort, ReverseBytes, S_S, kIntrinsicReverseBytes, kSignedHalf), 300 INTRINSIC(JavaLangInteger, Reverse, I_I, kIntrinsicReverseBits, k32), 301 INTRINSIC(JavaLangLong, Reverse, J_J, kIntrinsicReverseBits, k64) 424 InlineMethod intrinsic; local [all...] |
/external/llvm/test/Verifier/ |
global-ctors.ll | 6 ; CHECK: wrong type for intrinsic global variable 11 ; CHECK: wrong type for intrinsic global variable
|