15#ifndef LLVM_IR_NVVMINTRINSICUTILS_H
16#define LLVM_IR_NVVMINTRINSICUTILS_H
22#include "llvm/IR/IntrinsicsNVPTX.h"
42 switch (IntrinsicID) {
44 case Intrinsic::nvvm_f2i_rm_ftz:
45 case Intrinsic::nvvm_f2i_rn_ftz:
46 case Intrinsic::nvvm_f2i_rp_ftz:
47 case Intrinsic::nvvm_f2i_rz_ftz:
49 case Intrinsic::nvvm_f2ui_rm_ftz:
50 case Intrinsic::nvvm_f2ui_rn_ftz:
51 case Intrinsic::nvvm_f2ui_rp_ftz:
52 case Intrinsic::nvvm_f2ui_rz_ftz:
54 case Intrinsic::nvvm_f2ll_rm_ftz:
55 case Intrinsic::nvvm_f2ll_rn_ftz:
56 case Intrinsic::nvvm_f2ll_rp_ftz:
57 case Intrinsic::nvvm_f2ll_rz_ftz:
59 case Intrinsic::nvvm_f2ull_rm_ftz:
60 case Intrinsic::nvvm_f2ull_rn_ftz:
61 case Intrinsic::nvvm_f2ull_rp_ftz:
62 case Intrinsic::nvvm_f2ull_rz_ftz:
69 switch (IntrinsicID) {
71 case Intrinsic::nvvm_f2i_rm:
72 case Intrinsic::nvvm_f2i_rm_ftz:
73 case Intrinsic::nvvm_f2i_rn:
74 case Intrinsic::nvvm_f2i_rn_ftz:
75 case Intrinsic::nvvm_f2i_rp:
76 case Intrinsic::nvvm_f2i_rp_ftz:
77 case Intrinsic::nvvm_f2i_rz:
78 case Intrinsic::nvvm_f2i_rz_ftz:
80 case Intrinsic::nvvm_d2i_rm:
81 case Intrinsic::nvvm_d2i_rn:
82 case Intrinsic::nvvm_d2i_rp:
83 case Intrinsic::nvvm_d2i_rz:
85 case Intrinsic::nvvm_f2ll_rm:
86 case Intrinsic::nvvm_f2ll_rm_ftz:
87 case Intrinsic::nvvm_f2ll_rn:
88 case Intrinsic::nvvm_f2ll_rn_ftz:
89 case Intrinsic::nvvm_f2ll_rp:
90 case Intrinsic::nvvm_f2ll_rp_ftz:
91 case Intrinsic::nvvm_f2ll_rz:
92 case Intrinsic::nvvm_f2ll_rz_ftz:
94 case Intrinsic::nvvm_d2ll_rm:
95 case Intrinsic::nvvm_d2ll_rn:
96 case Intrinsic::nvvm_d2ll_rp:
97 case Intrinsic::nvvm_d2ll_rz:
105 switch (IntrinsicID) {
107 case Intrinsic::nvvm_f2i_rm:
108 case Intrinsic::nvvm_f2ui_rm:
109 case Intrinsic::nvvm_f2i_rm_ftz:
110 case Intrinsic::nvvm_f2ui_rm_ftz:
111 case Intrinsic::nvvm_d2i_rm:
112 case Intrinsic::nvvm_d2ui_rm:
114 case Intrinsic::nvvm_f2ll_rm:
115 case Intrinsic::nvvm_f2ull_rm:
116 case Intrinsic::nvvm_f2ll_rm_ftz:
117 case Intrinsic::nvvm_f2ull_rm_ftz:
118 case Intrinsic::nvvm_d2ll_rm:
119 case Intrinsic::nvvm_d2ull_rm:
123 case Intrinsic::nvvm_f2i_rn:
124 case Intrinsic::nvvm_f2ui_rn:
125 case Intrinsic::nvvm_f2i_rn_ftz:
126 case Intrinsic::nvvm_f2ui_rn_ftz:
127 case Intrinsic::nvvm_d2i_rn:
128 case Intrinsic::nvvm_d2ui_rn:
130 case Intrinsic::nvvm_f2ll_rn:
131 case Intrinsic::nvvm_f2ull_rn:
132 case Intrinsic::nvvm_f2ll_rn_ftz:
133 case Intrinsic::nvvm_f2ull_rn_ftz:
134 case Intrinsic::nvvm_d2ll_rn:
135 case Intrinsic::nvvm_d2ull_rn:
139 case Intrinsic::nvvm_f2i_rp:
140 case Intrinsic::nvvm_f2ui_rp:
141 case Intrinsic::nvvm_f2i_rp_ftz:
142 case Intrinsic::nvvm_f2ui_rp_ftz:
143 case Intrinsic::nvvm_d2i_rp:
144 case Intrinsic::nvvm_d2ui_rp:
146 case Intrinsic::nvvm_f2ll_rp:
147 case Intrinsic::nvvm_f2ull_rp:
148 case Intrinsic::nvvm_f2ll_rp_ftz:
149 case Intrinsic::nvvm_f2ull_rp_ftz:
150 case Intrinsic::nvvm_d2ll_rp:
151 case Intrinsic::nvvm_d2ull_rp:
155 case Intrinsic::nvvm_f2i_rz:
156 case Intrinsic::nvvm_f2ui_rz:
157 case Intrinsic::nvvm_f2i_rz_ftz:
158 case Intrinsic::nvvm_f2ui_rz_ftz:
159 case Intrinsic::nvvm_d2i_rz:
160 case Intrinsic::nvvm_d2ui_rz:
162 case Intrinsic::nvvm_f2ll_rz:
163 case Intrinsic::nvvm_f2ull_rz:
164 case Intrinsic::nvvm_f2ll_rz_ftz:
165 case Intrinsic::nvvm_f2ull_rz_ftz:
166 case Intrinsic::nvvm_d2ll_rz:
167 case Intrinsic::nvvm_d2ull_rz:
171 return APFloat::roundingMode::Invalid;
This file declares a class to represent arbitrary precision floating point values and provide a varie...
#define llvm_unreachable(msg)
Marks that the current location is not supposed to be reachable.
APFloat::roundingMode IntrinsicGetRoundingMode(Intrinsic::ID IntrinsicID)
bool IntrinsicShouldFTZ(Intrinsic::ID IntrinsicID)
bool IntrinsicConvertsToSignedInteger(Intrinsic::ID IntrinsicID)
This is an optimization pass for GlobalISel generic memory operations.
RoundingMode
Rounding mode.
static constexpr roundingMode rmTowardNegative
static constexpr roundingMode rmNearestTiesToEven
static constexpr roundingMode rmTowardZero
static constexpr roundingMode rmTowardPositive