R600/SI: Pattern match isinf to v_cmp_class instructions
[oota-llvm.git] / lib / Target / R600 / CIInstructions.td
1 //===-- CIInstructions.td - CI Instruction Defintions ---------------------===//
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 // Instruction definitions for CI and newer.
10 //===----------------------------------------------------------------------===//
11
12
13 def isCIVI : Predicate <
14   "Subtarget.getGeneration() == AMDGPUSubtarget::SEA_ISLANDS || "
15   "Subtarget.getGeneration() == AMDGPUSubtarget::VOLCANIC_ISLANDS"
16 >;
17
18 //===----------------------------------------------------------------------===//
19 // VOP1 Instructions
20 //===----------------------------------------------------------------------===//
21
22 let SubtargetPredicate = isCIVI in {
23
24 defm V_TRUNC_F64 : VOP1Inst <vop1<0x17>, "v_trunc_f64",
25   VOP_F64_F64, ftrunc
26 >;
27 defm V_CEIL_F64 : VOP1Inst <vop1<0x18>, "v_ceil_f64",
28   VOP_F64_F64, fceil
29 >;
30 defm V_FLOOR_F64 : VOP1Inst <vop1<0x1A>, "v_floor_f64",
31   VOP_F64_F64, ffloor
32 >;
33 defm V_RNDNE_F64 : VOP1Inst <vop1<0x19>, "v_rndne_f64",
34   VOP_F64_F64, frint
35 >;
36 defm V_LOG_LEGACY_F32 : VOP1Inst <vop1<0x45, 0x4c>, "v_log_legacy_f32",
37   VOP_F32_F32
38 >;
39 defm V_EXP_LEGACY_F32 : VOP1Inst <vop1<0x46, 0x4b>, "v_exp_legacy_f32",
40   VOP_F32_F32
41 >;
42 } // End SubtargetPredicate = isCIVI