1 //===--- HexagonOperands.td -----------------------------------------------===// 2 // 3 // The LLVM Compiler Infrastructure 4 // 5 // This file is distributed under the University of Illinois Open Source 6 // License. See LICENSE.TXT for details. 7 // 8 //===----------------------------------------------------------------------===// 9 10 def f32ImmOperand : AsmOperandClass { let Name = "f32Imm"; } 11 def f32Imm : Operand<f32> { let ParserMatchClass = f32ImmOperand; } 12 def f64ImmOperand : AsmOperandClass { let Name = "f64Imm"; } 13 def f64Imm : Operand<f64> { let ParserMatchClass = f64ImmOperand; } 14 def s8_0Imm64Pred : PatLeaf<(i64 imm), [{ return isInt<8>(N->getSExtValue()); }]>; 15 def s9_0ImmOperand : AsmOperandClass { let Name = "s9_0Imm"; } 16 def s9_0Imm : Operand<i32> { let ParserMatchClass = s9_0ImmOperand; } 17 def s27_2ImmOperand : AsmOperandClass { let Name = "s27_2Imm"; let RenderMethod = "addSignedImmOperands"; } 18 def s27_2Imm : Operand<i32> { let ParserMatchClass = s27_2ImmOperand; } 19 def r32_0ImmPred : PatLeaf<(i32 imm), [{ 20 int64_t v = (int64_t)N->getSExtValue(); 21 return isInt<32>(v); 22 }]>; 23 def u9_0ImmPred : PatLeaf<(i32 imm), [{ 24 int64_t v = (int64_t)N->getSExtValue(); 25 return isUInt<9>(v); 26 }]>; 27 def u64_0ImmOperand : AsmOperandClass { let Name = "u64_0Imm"; let RenderMethod = "addImmOperands"; } 28 def u64_0Imm : Operand<i64> { let ParserMatchClass = u64_0ImmOperand; } 29 def n1ConstOperand : AsmOperandClass { let Name = "n1Const"; } 30 def n1Const : Operand<i32> { let ParserMatchClass = n1ConstOperand; } 31 32 def bblabel : Operand<i32>; 33 def bbl : SDNode<"ISD::BasicBlock", SDTPtrLeaf, [], "BasicBlockSDNode">; 34