// RUN: llvm-tblgen -gen-intrinsic-impl -I %p/../../include %s | FileCheck %s // Get the minimum blurb necessary to process ... include "llvm/CodeGen/ValueTypes.td" include "llvm/CodeGen/SDNodeProperties.td" class LLVMType { ValueType VT = vt; int isAny = 0; } def llvm_i32_ty : LLVMType; class IntrinsicProperty { bit IsDefault = is_default; } def IntrNoMem : IntrinsicProperty; def IntrHasSideEffects : IntrinsicProperty; class Intrinsic ret_types, list param_types = [], list intr_properties = [], string name = "", list sd_properties = [], bit disable_default_attributes = 0> : SDPatternOperator { string LLVMName = name; string TargetPrefix = ""; list RetTypes = ret_types; list ParamTypes = param_types; list IntrProperties = intr_properties; let Properties = sd_properties; bit DisableDefaultAttributes = 1; bit isTarget = 0; bit DisableDefaultAttributes = disable_default_attributes; } // ... this intrinsic. def int_random_gen : Intrinsic<[llvm_i32_ty], [], [IntrNoMem, IntrHasSideEffects]>; // CHECK: 1, // llvm.random.gen // CHECK: case 1: // CHECK-NEXT: Atts[] = {Attribute::NoUnwind}