OLD | NEW |
1 //===- subzero/src/IceIntrinsics.cpp - Functions related to intrinsics ----===// | 1 //===- subzero/src/IceIntrinsics.cpp - Functions related to intrinsics ----===// |
2 // | 2 // |
3 // The Subzero Code Generator | 3 // The Subzero Code Generator |
4 // | 4 // |
5 // This file is distributed under the University of Illinois Open Source | 5 // This file is distributed under the University of Illinois Open Source |
6 // License. See LICENSE.TXT for details. | 6 // License. See LICENSE.TXT for details. |
7 // | 7 // |
8 //===----------------------------------------------------------------------===// | 8 //===----------------------------------------------------------------------===// |
9 // | 9 // |
10 // This file implements the Intrinsics utilities for matching and | 10 // This file implements the Intrinsics utilities for matching and |
(...skipping 141 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
152 { \ | 152 { \ |
153 INTRIN(Cttz, SideEffects_F, ReturnsTwice_F) \ | 153 INTRIN(Cttz, SideEffects_F, ReturnsTwice_F) \ |
154 , {Overload, Overload, IceType_i1}, 3 \ | 154 , {Overload, Overload, IceType_i1}, 3 \ |
155 } \ | 155 } \ |
156 , "cttz." NameSuffix \ | 156 , "cttz." NameSuffix \ |
157 } | 157 } |
158 CttzInit(IceType_i32, "i32"), | 158 CttzInit(IceType_i32, "i32"), |
159 CttzInit(IceType_i64, "i64"), | 159 CttzInit(IceType_i64, "i64"), |
160 #undef CttzInit | 160 #undef CttzInit |
161 | 161 |
| 162 #define FabsInit(Overload, NameSuffix) \ |
| 163 { \ |
| 164 { INTRIN(Fabs, SideEffects_F, ReturnsTwice_F), {Overload, Overload}, 2 } \ |
| 165 , "fabs." NameSuffix \ |
| 166 } |
| 167 FabsInit(IceType_f32, "f32"), |
| 168 FabsInit(IceType_f64, "f64"), |
| 169 FabsInit(IceType_v4f32, "v4f32"), |
| 170 #undef FabsInit |
| 171 |
162 {{INTRIN(Longjmp, SideEffects_T, ReturnsTwice_F), | 172 {{INTRIN(Longjmp, SideEffects_T, ReturnsTwice_F), |
163 {IceType_void, IceType_i32, IceType_i32}, | 173 {IceType_void, IceType_i32, IceType_i32}, |
164 3}, | 174 3}, |
165 "nacl.longjmp"}, | 175 "nacl.longjmp"}, |
166 {{INTRIN(Memcpy, SideEffects_T, ReturnsTwice_F), | 176 {{INTRIN(Memcpy, SideEffects_T, ReturnsTwice_F), |
167 {IceType_void, IceType_i32, IceType_i32, IceType_i32, IceType_i32, | 177 {IceType_void, IceType_i32, IceType_i32, IceType_i32, IceType_i32, |
168 IceType_i1}, | 178 IceType_i1}, |
169 6}, | 179 6}, |
170 "memcpy.p0i8.p0i8.i32"}, | 180 "memcpy.p0i8.p0i8.i32"}, |
171 {{INTRIN(Memmove, SideEffects_T, ReturnsTwice_F), | 181 {{INTRIN(Memmove, SideEffects_T, ReturnsTwice_F), |
(...skipping 153 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
325 return Intrinsics::IsValidCall; | 335 return Intrinsics::IsValidCall; |
326 } | 336 } |
327 | 337 |
328 Type Intrinsics::FullIntrinsicInfo::getArgType(SizeT Index) const { | 338 Type Intrinsics::FullIntrinsicInfo::getArgType(SizeT Index) const { |
329 assert(NumTypes > 1); | 339 assert(NumTypes > 1); |
330 assert(Index + 1 < NumTypes); | 340 assert(Index + 1 < NumTypes); |
331 return Signature[Index + 1]; | 341 return Signature[Index + 1]; |
332 } | 342 } |
333 | 343 |
334 } // end of namespace Ice | 344 } // end of namespace Ice |
OLD | NEW |