brintos

brintos / llvm-project-archived public Read only

0
0
Text · 5.0 KiB · fc9c332 Raw
79 lines · plain
1// RUN: llvm-tblgen -gen-intrinsic-impl -I %p/../../include -DTEST_INTRINSICS_SUPPRESS_DEFS %s | FileCheck %s2 3include "llvm/IR/Intrinsics.td"4 5def int_aarch64_get_target_mem0_mem1   : DefaultAttrsIntrinsic<[], [llvm_i64_ty], [IntrReadMem, IntrRead<[TargetMem0, TargetMem1]>]>;6 7def int_aarch64_get_target_mem0_set_target_mem1   : DefaultAttrsIntrinsic<[], [llvm_i64_ty], [IntrRead<[TargetMem0]>, IntrWrite<[TargetMem1]>]>;8 9def int_aarch64_get_target_mem1   : DefaultAttrsIntrinsic<[], [llvm_i64_ty], [IntrReadMem,  IntrRead<[TargetMem1]>]>;10 11def int_aarch64_get_target_mem1_set_target_mem1   : DefaultAttrsIntrinsic<[], [llvm_i64_ty], [IntrRead<[TargetMem1]>, IntrWrite<[TargetMem1]>]>;12 13def int_aarch64_set_inaccessible_mem   : DefaultAttrsIntrinsic<[], [llvm_i64_ty], [IntrWriteMem, IntrWrite<[InaccessibleMem]>]>;14 15def int_aarch64_set_target_mem0   : DefaultAttrsIntrinsic<[], [llvm_i64_ty], [IntrWriteMem, IntrWrite<[TargetMem0]>]>;16 17// CHECK:   static AttributeSet getIntrinsicFnAttributeSet(LLVMContext &C, unsigned ID) {18// CHECK-NEXT:  switch (ID) {19// CHECK-NEXT:    default: llvm_unreachable("Invalid attribute set number");20// CHECK-NEXT:  case 0: // llvm.aarch64.get.target.mem0.mem121// CHECK-NEXT:    return AttributeSet::get(C, {22// CHECK-NEXT:      Attribute::get(C, Attribute::NoUnwind),23// CHECK-NEXT:      Attribute::get(C, Attribute::NoCallback),24// CHECK-NEXT:      Attribute::get(C, Attribute::NoSync),25// CHECK-NEXT:      Attribute::get(C, Attribute::NoFree),26// CHECK-NEXT:      Attribute::get(C, Attribute::WillReturn),27// CHECK-NEXT:      // ArgMem: NoModRef, InaccessibleMem: NoModRef, ErrnoMem: NoModRef, Other: NoModRef, TargetMem0: Ref, TargetMem1: Ref28// CHECK-NEXT:      Attribute::getWithMemoryEffects(C, MemoryEffects::createFromIntValue(1280)),29// CHECK-NEXT:    });30// CHECK-NEXT:  case 1: // llvm.aarch64.get.target.mem0.set.target.mem131// CHECK-NEXT:    return AttributeSet::get(C, {32// CHECK-NEXT:      Attribute::get(C, Attribute::NoUnwind),33// CHECK-NEXT:      Attribute::get(C, Attribute::NoCallback),34// CHECK-NEXT:      Attribute::get(C, Attribute::NoSync),35// CHECK-NEXT:     Attribute::get(C, Attribute::NoFree),36// CHECK-NEXT:      Attribute::get(C, Attribute::WillReturn),37// CHECK-NEXT:      // ArgMem: NoModRef, InaccessibleMem: NoModRef, ErrnoMem: NoModRef, Other: NoModRef, TargetMem0: Ref, TargetMem1: Mod38// CHECK-NEXT:      Attribute::getWithMemoryEffects(C, MemoryEffects::createFromIntValue(2304)),39// CHECK-NEXT:    });40// CHECK-NEXT:  case 2: // llvm.aarch64.get.target.mem141// CHECK-NEXT:    return AttributeSet::get(C, {42// CHECK-NEXT:      Attribute::get(C, Attribute::NoUnwind),43// CHECK-NEXT:      Attribute::get(C, Attribute::NoCallback),44// CHECK-NEXT:      Attribute::get(C, Attribute::NoSync),45// CHECK-NEXT:      Attribute::get(C, Attribute::NoFree),46// CHECK-NEXT:      Attribute::get(C, Attribute::WillReturn),47// CHECK-NEXT:      // ArgMem: NoModRef, InaccessibleMem: NoModRef, ErrnoMem: NoModRef, Other: NoModRef, TargetMem0: NoModRef, TargetMem1: Ref48// CHECK-NEXT:      Attribute::getWithMemoryEffects(C, MemoryEffects::createFromIntValue(1024)),49// CHECK-NEXT:    });50// CHECK-NEXT:  case 3: // llvm.aarch64.get.target.mem1.set.target.mem151// CHECK-NEXT:    return AttributeSet::get(C, {52// CHECK-NEXT:      Attribute::get(C, Attribute::NoUnwind),53// CHECK-NEXT:      Attribute::get(C, Attribute::NoCallback),54// CHECK-NEXT:      Attribute::get(C, Attribute::NoSync),55// CHECK-NEXT:      Attribute::get(C, Attribute::NoFree),56// CHECK-NEXT:      Attribute::get(C, Attribute::WillReturn),57// CHECK-NEXT:      // ArgMem: NoModRef, InaccessibleMem: NoModRef, ErrnoMem: NoModRef, Other: NoModRef, TargetMem0: NoModRef, TargetMem1: ModRef58// CHECK-NEXT:      Attribute::getWithMemoryEffects(C, MemoryEffects::createFromIntValue(3072)),59// CHECK-NEXT:    });60// CHECK-NEXT:  case 4: // llvm.aarch64.set.inaccessible.mem61// CHECK-NEXT:    return AttributeSet::get(C, {62// CHECK-NEXT:      Attribute::get(C, Attribute::NoUnwind),63// CHECK-NEXT:      Attribute::get(C, Attribute::NoCallback),64// CHECK-NEXT:      Attribute::get(C, Attribute::NoSync),65// CHECK-NEXT:      Attribute::get(C, Attribute::NoFree),66// CHECK-NEXT:      Attribute::get(C, Attribute::WillReturn),67// CHECK-NEXT:      // ArgMem: NoModRef, InaccessibleMem: Mod, ErrnoMem: NoModRef, Other: NoModRef, TargetMem0: NoModRef, TargetMem1: NoModRef68// CHECK-NEXT:      Attribute::getWithMemoryEffects(C, MemoryEffects::createFromIntValue(8)),69// CHECK-NEXT:    });70// CHECK-NEXT:  case 5: // llvm.aarch64.set.target.mem071// CHECK-NEXT:    return AttributeSet::get(C, {72// CHECK-NEXT:      Attribute::get(C, Attribute::NoUnwind),73// CHECK-NEXT:      Attribute::get(C, Attribute::NoCallback),74// CHECK-NEXT:      Attribute::get(C, Attribute::NoSync),75// CHECK-NEXT:      Attribute::get(C, Attribute::NoFree),76// CHECK-NEXT:      Attribute::get(C, Attribute::WillReturn),77// CHECK-NEXT:      // ArgMem: NoModRef, InaccessibleMem: NoModRef, ErrnoMem: NoModRef, Other: NoModRef, TargetMem0: Mod, TargetMem1: NoModRef78// CHECK-NEXT:      Attribute::getWithMemoryEffects(C, MemoryEffects::createFromIntValue(512)),79