RuntimeLibcalls.h revision de0118c324a3fb8b0b5afa8e46996d9b81666bfd
1495600120e9d6c7599c599b7b16a9e8789c65aa5Evan Cheng//===-- CodeGen/RuntimeLibcall.h - Runtime Library Calls --------*- C++ -*-===// 2495600120e9d6c7599c599b7b16a9e8789c65aa5Evan Cheng// 3495600120e9d6c7599c599b7b16a9e8789c65aa5Evan Cheng// The LLVM Compiler Infrastructure 4495600120e9d6c7599c599b7b16a9e8789c65aa5Evan Cheng// 57ed47a13356daed2a34cd2209a31f92552e3bdd8Chris Lattner// This file is distributed under the University of Illinois Open Source 67ed47a13356daed2a34cd2209a31f92552e3bdd8Chris Lattner// License. See LICENSE.TXT for details. 7495600120e9d6c7599c599b7b16a9e8789c65aa5Evan Cheng// 8495600120e9d6c7599c599b7b16a9e8789c65aa5Evan Cheng//===----------------------------------------------------------------------===// 9495600120e9d6c7599c599b7b16a9e8789c65aa5Evan Cheng// 10495600120e9d6c7599c599b7b16a9e8789c65aa5Evan Cheng// This file defines the enum representing the list of runtime library calls 11b2ff885aaed8f9b033b16ca78d645650efc32433Duncan Sands// the backend may emit during code generation, and also some helper functions. 12495600120e9d6c7599c599b7b16a9e8789c65aa5Evan Cheng// 13495600120e9d6c7599c599b7b16a9e8789c65aa5Evan Cheng//===----------------------------------------------------------------------===// 14495600120e9d6c7599c599b7b16a9e8789c65aa5Evan Cheng 15495600120e9d6c7599c599b7b16a9e8789c65aa5Evan Cheng#ifndef LLVM_CODEGEN_RUNTIMELIBCALLS_H 16495600120e9d6c7599c599b7b16a9e8789c65aa5Evan Cheng#define LLVM_CODEGEN_RUNTIMELIBCALLS_H 17495600120e9d6c7599c599b7b16a9e8789c65aa5Evan Cheng 18b2ff885aaed8f9b033b16ca78d645650efc32433Duncan Sands#include "llvm/CodeGen/ValueTypes.h" 19b2ff885aaed8f9b033b16ca78d645650efc32433Duncan Sands 20495600120e9d6c7599c599b7b16a9e8789c65aa5Evan Chengnamespace llvm { 21495600120e9d6c7599c599b7b16a9e8789c65aa5Evan Chengnamespace RTLIB { 22495600120e9d6c7599c599b7b16a9e8789c65aa5Evan Cheng /// RTLIB::Libcall enum - This enum defines all of the runtime library calls 23161e897b0fb35d156b2fe720fadabd975b0d6723Dale Johannesen /// the backend can emit. The various long double types cannot be merged, 24161e897b0fb35d156b2fe720fadabd975b0d6723Dale Johannesen /// because 80-bit library functions use "xf" and 128-bit use "tf". 25fabd32deb025ebd47c5eb47259d2424fd789b05cDale Johannesen /// 26fabd32deb025ebd47c5eb47259d2424fd789b05cDale Johannesen /// When adding PPCF128 functions here, note that their names generally need 27fabd32deb025ebd47c5eb47259d2424fd789b05cDale Johannesen /// to be overridden for Darwin with the xxx$LDBL128 form. See 28fabd32deb025ebd47c5eb47259d2424fd789b05cDale Johannesen /// PPCISelLowering.cpp. 29495600120e9d6c7599c599b7b16a9e8789c65aa5Evan Cheng /// 30495600120e9d6c7599c599b7b16a9e8789c65aa5Evan Cheng enum Libcall { 31495600120e9d6c7599c599b7b16a9e8789c65aa5Evan Cheng // Integer 3215c94d08ab2be2e3d00de4edbfc7adde6545a7dbSanjiv Gupta SHL_I16, 33495600120e9d6c7599c599b7b16a9e8789c65aa5Evan Cheng SHL_I32, 34495600120e9d6c7599c599b7b16a9e8789c65aa5Evan Cheng SHL_I64, 35dddc6291fb5274282a20d5923b50535d456d34a4Duncan Sands SHL_I128, 3615c94d08ab2be2e3d00de4edbfc7adde6545a7dbSanjiv Gupta SRL_I16, 37495600120e9d6c7599c599b7b16a9e8789c65aa5Evan Cheng SRL_I32, 38495600120e9d6c7599c599b7b16a9e8789c65aa5Evan Cheng SRL_I64, 39dddc6291fb5274282a20d5923b50535d456d34a4Duncan Sands SRL_I128, 4015c94d08ab2be2e3d00de4edbfc7adde6545a7dbSanjiv Gupta SRA_I16, 41495600120e9d6c7599c599b7b16a9e8789c65aa5Evan Cheng SRA_I32, 42495600120e9d6c7599c599b7b16a9e8789c65aa5Evan Cheng SRA_I64, 43dddc6291fb5274282a20d5923b50535d456d34a4Duncan Sands SRA_I128, 448983da729aa1ca99a11a3b98ae6280dfcdbadb39Anton Korobeynikov MUL_I8, 4515c94d08ab2be2e3d00de4edbfc7adde6545a7dbSanjiv Gupta MUL_I16, 46495600120e9d6c7599c599b7b16a9e8789c65aa5Evan Cheng MUL_I32, 47495600120e9d6c7599c599b7b16a9e8789c65aa5Evan Cheng MUL_I64, 485ac319ac7125b009adddcc49294d2e040c4a91e5Duncan Sands MUL_I128, 498983da729aa1ca99a11a3b98ae6280dfcdbadb39Anton Korobeynikov SDIV_I8, 50813090cf891325c715b9f6fb1546e6ce67fa8c8bAnton Korobeynikov SDIV_I16, 51495600120e9d6c7599c599b7b16a9e8789c65aa5Evan Cheng SDIV_I32, 52495600120e9d6c7599c599b7b16a9e8789c65aa5Evan Cheng SDIV_I64, 535ac319ac7125b009adddcc49294d2e040c4a91e5Duncan Sands SDIV_I128, 548983da729aa1ca99a11a3b98ae6280dfcdbadb39Anton Korobeynikov UDIV_I8, 55813090cf891325c715b9f6fb1546e6ce67fa8c8bAnton Korobeynikov UDIV_I16, 56495600120e9d6c7599c599b7b16a9e8789c65aa5Evan Cheng UDIV_I32, 57495600120e9d6c7599c599b7b16a9e8789c65aa5Evan Cheng UDIV_I64, 585ac319ac7125b009adddcc49294d2e040c4a91e5Duncan Sands UDIV_I128, 598983da729aa1ca99a11a3b98ae6280dfcdbadb39Anton Korobeynikov SREM_I8, 60813090cf891325c715b9f6fb1546e6ce67fa8c8bAnton Korobeynikov SREM_I16, 61495600120e9d6c7599c599b7b16a9e8789c65aa5Evan Cheng SREM_I32, 62495600120e9d6c7599c599b7b16a9e8789c65aa5Evan Cheng SREM_I64, 635ac319ac7125b009adddcc49294d2e040c4a91e5Duncan Sands SREM_I128, 648983da729aa1ca99a11a3b98ae6280dfcdbadb39Anton Korobeynikov UREM_I8, 65813090cf891325c715b9f6fb1546e6ce67fa8c8bAnton Korobeynikov UREM_I16, 66495600120e9d6c7599c599b7b16a9e8789c65aa5Evan Cheng UREM_I32, 67495600120e9d6c7599c599b7b16a9e8789c65aa5Evan Cheng UREM_I64, 685ac319ac7125b009adddcc49294d2e040c4a91e5Duncan Sands UREM_I128, 69495600120e9d6c7599c599b7b16a9e8789c65aa5Evan Cheng NEG_I32, 70495600120e9d6c7599c599b7b16a9e8789c65aa5Evan Cheng NEG_I64, 71495600120e9d6c7599c599b7b16a9e8789c65aa5Evan Cheng 72495600120e9d6c7599c599b7b16a9e8789c65aa5Evan Cheng // FLOATING POINT 73495600120e9d6c7599c599b7b16a9e8789c65aa5Evan Cheng ADD_F32, 74495600120e9d6c7599c599b7b16a9e8789c65aa5Evan Cheng ADD_F64, 75007f9847c44ddbe7fd04cba362b4ec0f0f40964bDuncan Sands ADD_F80, 76161e897b0fb35d156b2fe720fadabd975b0d6723Dale Johannesen ADD_PPCF128, 77495600120e9d6c7599c599b7b16a9e8789c65aa5Evan Cheng SUB_F32, 78495600120e9d6c7599c599b7b16a9e8789c65aa5Evan Cheng SUB_F64, 79007f9847c44ddbe7fd04cba362b4ec0f0f40964bDuncan Sands SUB_F80, 80161e897b0fb35d156b2fe720fadabd975b0d6723Dale Johannesen SUB_PPCF128, 81495600120e9d6c7599c599b7b16a9e8789c65aa5Evan Cheng MUL_F32, 82495600120e9d6c7599c599b7b16a9e8789c65aa5Evan Cheng MUL_F64, 83007f9847c44ddbe7fd04cba362b4ec0f0f40964bDuncan Sands MUL_F80, 84161e897b0fb35d156b2fe720fadabd975b0d6723Dale Johannesen MUL_PPCF128, 85495600120e9d6c7599c599b7b16a9e8789c65aa5Evan Cheng DIV_F32, 86495600120e9d6c7599c599b7b16a9e8789c65aa5Evan Cheng DIV_F64, 87007f9847c44ddbe7fd04cba362b4ec0f0f40964bDuncan Sands DIV_F80, 88161e897b0fb35d156b2fe720fadabd975b0d6723Dale Johannesen DIV_PPCF128, 89495600120e9d6c7599c599b7b16a9e8789c65aa5Evan Cheng REM_F32, 90495600120e9d6c7599c599b7b16a9e8789c65aa5Evan Cheng REM_F64, 91007f9847c44ddbe7fd04cba362b4ec0f0f40964bDuncan Sands REM_F80, 92161e897b0fb35d156b2fe720fadabd975b0d6723Dale Johannesen REM_PPCF128, 93495600120e9d6c7599c599b7b16a9e8789c65aa5Evan Cheng POWI_F32, 94495600120e9d6c7599c599b7b16a9e8789c65aa5Evan Cheng POWI_F64, 95161e897b0fb35d156b2fe720fadabd975b0d6723Dale Johannesen POWI_F80, 96161e897b0fb35d156b2fe720fadabd975b0d6723Dale Johannesen POWI_PPCF128, 97495600120e9d6c7599c599b7b16a9e8789c65aa5Evan Cheng SQRT_F32, 98495600120e9d6c7599c599b7b16a9e8789c65aa5Evan Cheng SQRT_F64, 99161e897b0fb35d156b2fe720fadabd975b0d6723Dale Johannesen SQRT_F80, 100161e897b0fb35d156b2fe720fadabd975b0d6723Dale Johannesen SQRT_PPCF128, 1017794f2a3a7778bdbc9bdd861db1fe914450e0470Dale Johannesen LOG_F32, 1027794f2a3a7778bdbc9bdd861db1fe914450e0470Dale Johannesen LOG_F64, 1037794f2a3a7778bdbc9bdd861db1fe914450e0470Dale Johannesen LOG_F80, 1047794f2a3a7778bdbc9bdd861db1fe914450e0470Dale Johannesen LOG_PPCF128, 1057794f2a3a7778bdbc9bdd861db1fe914450e0470Dale Johannesen LOG2_F32, 1067794f2a3a7778bdbc9bdd861db1fe914450e0470Dale Johannesen LOG2_F64, 1077794f2a3a7778bdbc9bdd861db1fe914450e0470Dale Johannesen LOG2_F80, 1087794f2a3a7778bdbc9bdd861db1fe914450e0470Dale Johannesen LOG2_PPCF128, 1097794f2a3a7778bdbc9bdd861db1fe914450e0470Dale Johannesen LOG10_F32, 1107794f2a3a7778bdbc9bdd861db1fe914450e0470Dale Johannesen LOG10_F64, 1117794f2a3a7778bdbc9bdd861db1fe914450e0470Dale Johannesen LOG10_F80, 1127794f2a3a7778bdbc9bdd861db1fe914450e0470Dale Johannesen LOG10_PPCF128, 1137794f2a3a7778bdbc9bdd861db1fe914450e0470Dale Johannesen EXP_F32, 1147794f2a3a7778bdbc9bdd861db1fe914450e0470Dale Johannesen EXP_F64, 1157794f2a3a7778bdbc9bdd861db1fe914450e0470Dale Johannesen EXP_F80, 1167794f2a3a7778bdbc9bdd861db1fe914450e0470Dale Johannesen EXP_PPCF128, 1177794f2a3a7778bdbc9bdd861db1fe914450e0470Dale Johannesen EXP2_F32, 1187794f2a3a7778bdbc9bdd861db1fe914450e0470Dale Johannesen EXP2_F64, 1197794f2a3a7778bdbc9bdd861db1fe914450e0470Dale Johannesen EXP2_F80, 1207794f2a3a7778bdbc9bdd861db1fe914450e0470Dale Johannesen EXP2_PPCF128, 121495600120e9d6c7599c599b7b16a9e8789c65aa5Evan Cheng SIN_F32, 122495600120e9d6c7599c599b7b16a9e8789c65aa5Evan Cheng SIN_F64, 123007f9847c44ddbe7fd04cba362b4ec0f0f40964bDuncan Sands SIN_F80, 124007f9847c44ddbe7fd04cba362b4ec0f0f40964bDuncan Sands SIN_PPCF128, 125495600120e9d6c7599c599b7b16a9e8789c65aa5Evan Cheng COS_F32, 126495600120e9d6c7599c599b7b16a9e8789c65aa5Evan Cheng COS_F64, 127007f9847c44ddbe7fd04cba362b4ec0f0f40964bDuncan Sands COS_F80, 128007f9847c44ddbe7fd04cba362b4ec0f0f40964bDuncan Sands COS_PPCF128, 129e54be104180d81b61c5fcc29ccb7960f9b78476eDan Gohman POW_F32, 130e54be104180d81b61c5fcc29ccb7960f9b78476eDan Gohman POW_F64, 131e54be104180d81b61c5fcc29ccb7960f9b78476eDan Gohman POW_F80, 132e54be104180d81b61c5fcc29ccb7960f9b78476eDan Gohman POW_PPCF128, 1332bb1e3eede14dd8a965506465e2876fb1ae765c2Dan Gohman CEIL_F32, 1342bb1e3eede14dd8a965506465e2876fb1ae765c2Dan Gohman CEIL_F64, 1352bb1e3eede14dd8a965506465e2876fb1ae765c2Dan Gohman CEIL_F80, 1362bb1e3eede14dd8a965506465e2876fb1ae765c2Dan Gohman CEIL_PPCF128, 1372bb1e3eede14dd8a965506465e2876fb1ae765c2Dan Gohman TRUNC_F32, 1382bb1e3eede14dd8a965506465e2876fb1ae765c2Dan Gohman TRUNC_F64, 1392bb1e3eede14dd8a965506465e2876fb1ae765c2Dan Gohman TRUNC_F80, 1402bb1e3eede14dd8a965506465e2876fb1ae765c2Dan Gohman TRUNC_PPCF128, 1412bb1e3eede14dd8a965506465e2876fb1ae765c2Dan Gohman RINT_F32, 1422bb1e3eede14dd8a965506465e2876fb1ae765c2Dan Gohman RINT_F64, 1432bb1e3eede14dd8a965506465e2876fb1ae765c2Dan Gohman RINT_F80, 1442bb1e3eede14dd8a965506465e2876fb1ae765c2Dan Gohman RINT_PPCF128, 1452bb1e3eede14dd8a965506465e2876fb1ae765c2Dan Gohman NEARBYINT_F32, 1462bb1e3eede14dd8a965506465e2876fb1ae765c2Dan Gohman NEARBYINT_F64, 1472bb1e3eede14dd8a965506465e2876fb1ae765c2Dan Gohman NEARBYINT_F80, 1482bb1e3eede14dd8a965506465e2876fb1ae765c2Dan Gohman NEARBYINT_PPCF128, 1492bb1e3eede14dd8a965506465e2876fb1ae765c2Dan Gohman FLOOR_F32, 1502bb1e3eede14dd8a965506465e2876fb1ae765c2Dan Gohman FLOOR_F64, 1512bb1e3eede14dd8a965506465e2876fb1ae765c2Dan Gohman FLOOR_F80, 1522bb1e3eede14dd8a965506465e2876fb1ae765c2Dan Gohman FLOOR_PPCF128, 153d2c817eff1d158398fb0a620fa762bf95207922fDuncan Sands COPYSIGN_F32, 154d2c817eff1d158398fb0a620fa762bf95207922fDuncan Sands COPYSIGN_F64, 155d2c817eff1d158398fb0a620fa762bf95207922fDuncan Sands COPYSIGN_F80, 156d2c817eff1d158398fb0a620fa762bf95207922fDuncan Sands COPYSIGN_PPCF128, 157495600120e9d6c7599c599b7b16a9e8789c65aa5Evan Cheng 158495600120e9d6c7599c599b7b16a9e8789c65aa5Evan Cheng // CONVERSION 159495600120e9d6c7599c599b7b16a9e8789c65aa5Evan Cheng FPEXT_F32_F64, 160927411b7ce0b7852fe4f392d8cd4faaa3881f852Anton Korobeynikov FPEXT_F16_F32, 161927411b7ce0b7852fe4f392d8cd4faaa3881f852Anton Korobeynikov FPROUND_F32_F16, 162495600120e9d6c7599c599b7b16a9e8789c65aa5Evan Cheng FPROUND_F64_F32, 163e36bfe678df09f46e1eac60b15105c1ccd2c5382Bruno Cardoso Lopes FPROUND_F80_F32, 164e36bfe678df09f46e1eac60b15105c1ccd2c5382Bruno Cardoso Lopes FPROUND_PPCF128_F32, 165e36bfe678df09f46e1eac60b15105c1ccd2c5382Bruno Cardoso Lopes FPROUND_F80_F64, 166e36bfe678df09f46e1eac60b15105c1ccd2c5382Bruno Cardoso Lopes FPROUND_PPCF128_F64, 1678aa207ee306b6a5ce753511a5f811fc1cd2468e2Sanjiv Gupta FPTOSINT_F32_I8, 1688aa207ee306b6a5ce753511a5f811fc1cd2468e2Sanjiv Gupta FPTOSINT_F32_I16, 169495600120e9d6c7599c599b7b16a9e8789c65aa5Evan Cheng FPTOSINT_F32_I32, 170495600120e9d6c7599c599b7b16a9e8789c65aa5Evan Cheng FPTOSINT_F32_I64, 171a2e9485e34f1348526ed104dbdc194673e291077Dan Gohman FPTOSINT_F32_I128, 172de0118c324a3fb8b0b5afa8e46996d9b81666bfdAnton Korobeynikov FPTOSINT_F64_I8, 173de0118c324a3fb8b0b5afa8e46996d9b81666bfdAnton Korobeynikov FPTOSINT_F64_I16, 174495600120e9d6c7599c599b7b16a9e8789c65aa5Evan Cheng FPTOSINT_F64_I32, 175495600120e9d6c7599c599b7b16a9e8789c65aa5Evan Cheng FPTOSINT_F64_I64, 176a2e9485e34f1348526ed104dbdc194673e291077Dan Gohman FPTOSINT_F64_I128, 177be1ad4de2900451626c8d4ace07b9ea16099ea1dDuncan Sands FPTOSINT_F80_I32, 178161e897b0fb35d156b2fe720fadabd975b0d6723Dale Johannesen FPTOSINT_F80_I64, 179a2e9485e34f1348526ed104dbdc194673e291077Dan Gohman FPTOSINT_F80_I128, 180041cde26eaf4ef6171ff1a44aeedd08d7a1cba6cDuncan Sands FPTOSINT_PPCF128_I32, 181161e897b0fb35d156b2fe720fadabd975b0d6723Dale Johannesen FPTOSINT_PPCF128_I64, 182a2e9485e34f1348526ed104dbdc194673e291077Dan Gohman FPTOSINT_PPCF128_I128, 1838aa207ee306b6a5ce753511a5f811fc1cd2468e2Sanjiv Gupta FPTOUINT_F32_I8, 1848aa207ee306b6a5ce753511a5f811fc1cd2468e2Sanjiv Gupta FPTOUINT_F32_I16, 185495600120e9d6c7599c599b7b16a9e8789c65aa5Evan Cheng FPTOUINT_F32_I32, 186495600120e9d6c7599c599b7b16a9e8789c65aa5Evan Cheng FPTOUINT_F32_I64, 187a2e9485e34f1348526ed104dbdc194673e291077Dan Gohman FPTOUINT_F32_I128, 188de0118c324a3fb8b0b5afa8e46996d9b81666bfdAnton Korobeynikov FPTOUINT_F64_I8, 189de0118c324a3fb8b0b5afa8e46996d9b81666bfdAnton Korobeynikov FPTOUINT_F64_I16, 190495600120e9d6c7599c599b7b16a9e8789c65aa5Evan Cheng FPTOUINT_F64_I32, 191495600120e9d6c7599c599b7b16a9e8789c65aa5Evan Cheng FPTOUINT_F64_I64, 192a2e9485e34f1348526ed104dbdc194673e291077Dan Gohman FPTOUINT_F64_I128, 193161e897b0fb35d156b2fe720fadabd975b0d6723Dale Johannesen FPTOUINT_F80_I32, 194161e897b0fb35d156b2fe720fadabd975b0d6723Dale Johannesen FPTOUINT_F80_I64, 195a2e9485e34f1348526ed104dbdc194673e291077Dan Gohman FPTOUINT_F80_I128, 196041cde26eaf4ef6171ff1a44aeedd08d7a1cba6cDuncan Sands FPTOUINT_PPCF128_I32, 197161e897b0fb35d156b2fe720fadabd975b0d6723Dale Johannesen FPTOUINT_PPCF128_I64, 198a2e9485e34f1348526ed104dbdc194673e291077Dan Gohman FPTOUINT_PPCF128_I128, 199495600120e9d6c7599c599b7b16a9e8789c65aa5Evan Cheng SINTTOFP_I32_F32, 200495600120e9d6c7599c599b7b16a9e8789c65aa5Evan Cheng SINTTOFP_I32_F64, 2019bed0f58eb7f5e9e22d062f3880a5fabfdd0dfddDuncan Sands SINTTOFP_I32_F80, 2029bed0f58eb7f5e9e22d062f3880a5fabfdd0dfddDuncan Sands SINTTOFP_I32_PPCF128, 203495600120e9d6c7599c599b7b16a9e8789c65aa5Evan Cheng SINTTOFP_I64_F32, 204495600120e9d6c7599c599b7b16a9e8789c65aa5Evan Cheng SINTTOFP_I64_F64, 205161e897b0fb35d156b2fe720fadabd975b0d6723Dale Johannesen SINTTOFP_I64_F80, 206161e897b0fb35d156b2fe720fadabd975b0d6723Dale Johannesen SINTTOFP_I64_PPCF128, 207d91446de7a89a22c8ea1cbfd40fe2528467a4ccbDan Gohman SINTTOFP_I128_F32, 208d91446de7a89a22c8ea1cbfd40fe2528467a4ccbDan Gohman SINTTOFP_I128_F64, 209d91446de7a89a22c8ea1cbfd40fe2528467a4ccbDan Gohman SINTTOFP_I128_F80, 210d91446de7a89a22c8ea1cbfd40fe2528467a4ccbDan Gohman SINTTOFP_I128_PPCF128, 211495600120e9d6c7599c599b7b16a9e8789c65aa5Evan Cheng UINTTOFP_I32_F32, 212495600120e9d6c7599c599b7b16a9e8789c65aa5Evan Cheng UINTTOFP_I32_F64, 213ac6cecec189ba9689c42543c3106c02b96d788daDuncan Sands UINTTOFP_I32_F80, 214ac6cecec189ba9689c42543c3106c02b96d788daDuncan Sands UINTTOFP_I32_PPCF128, 215495600120e9d6c7599c599b7b16a9e8789c65aa5Evan Cheng UINTTOFP_I64_F32, 216495600120e9d6c7599c599b7b16a9e8789c65aa5Evan Cheng UINTTOFP_I64_F64, 217ac6cecec189ba9689c42543c3106c02b96d788daDuncan Sands UINTTOFP_I64_F80, 218ac6cecec189ba9689c42543c3106c02b96d788daDuncan Sands UINTTOFP_I64_PPCF128, 219ac6cecec189ba9689c42543c3106c02b96d788daDuncan Sands UINTTOFP_I128_F32, 220ac6cecec189ba9689c42543c3106c02b96d788daDuncan Sands UINTTOFP_I128_F64, 221ac6cecec189ba9689c42543c3106c02b96d788daDuncan Sands UINTTOFP_I128_F80, 222ac6cecec189ba9689c42543c3106c02b96d788daDuncan Sands UINTTOFP_I128_PPCF128, 223495600120e9d6c7599c599b7b16a9e8789c65aa5Evan Cheng 224495600120e9d6c7599c599b7b16a9e8789c65aa5Evan Cheng // COMPARISON 225495600120e9d6c7599c599b7b16a9e8789c65aa5Evan Cheng OEQ_F32, 226495600120e9d6c7599c599b7b16a9e8789c65aa5Evan Cheng OEQ_F64, 227495600120e9d6c7599c599b7b16a9e8789c65aa5Evan Cheng UNE_F32, 228495600120e9d6c7599c599b7b16a9e8789c65aa5Evan Cheng UNE_F64, 229495600120e9d6c7599c599b7b16a9e8789c65aa5Evan Cheng OGE_F32, 230495600120e9d6c7599c599b7b16a9e8789c65aa5Evan Cheng OGE_F64, 231495600120e9d6c7599c599b7b16a9e8789c65aa5Evan Cheng OLT_F32, 232495600120e9d6c7599c599b7b16a9e8789c65aa5Evan Cheng OLT_F64, 233495600120e9d6c7599c599b7b16a9e8789c65aa5Evan Cheng OLE_F32, 234495600120e9d6c7599c599b7b16a9e8789c65aa5Evan Cheng OLE_F64, 235495600120e9d6c7599c599b7b16a9e8789c65aa5Evan Cheng OGT_F32, 236495600120e9d6c7599c599b7b16a9e8789c65aa5Evan Cheng OGT_F64, 237495600120e9d6c7599c599b7b16a9e8789c65aa5Evan Cheng UO_F32, 238495600120e9d6c7599c599b7b16a9e8789c65aa5Evan Cheng UO_F64, 239991d3616c8383688f1acf443cc698edef850da4dEvan Cheng O_F32, 240991d3616c8383688f1acf443cc698edef850da4dEvan Cheng O_F64, 241495600120e9d6c7599c599b7b16a9e8789c65aa5Evan Cheng 242a114baa5bf0d70aed8b8cf576a864005c0d6a128Sanjiv Gupta // MEMORY 243a114baa5bf0d70aed8b8cf576a864005c0d6a128Sanjiv Gupta MEMCPY, 244a114baa5bf0d70aed8b8cf576a864005c0d6a128Sanjiv Gupta MEMSET, 245a114baa5bf0d70aed8b8cf576a864005c0d6a128Sanjiv Gupta MEMMOVE, 246a114baa5bf0d70aed8b8cf576a864005c0d6a128Sanjiv Gupta 247b0f1e1780c736c62fb99e5824825d2a60a53b53bDuncan Sands // EXCEPTION HANDLING 248b0f1e1780c736c62fb99e5824825d2a60a53b53bDuncan Sands UNWIND_RESUME, 249b0f1e1780c736c62fb99e5824825d2a60a53b53bDuncan Sands 250495600120e9d6c7599c599b7b16a9e8789c65aa5Evan Cheng UNKNOWN_LIBCALL 251495600120e9d6c7599c599b7b16a9e8789c65aa5Evan Cheng }; 252b2ff885aaed8f9b033b16ca78d645650efc32433Duncan Sands 253b2ff885aaed8f9b033b16ca78d645650efc32433Duncan Sands /// getFPEXT - Return the FPEXT_*_* value for the given types, or 254b2ff885aaed8f9b033b16ca78d645650efc32433Duncan Sands /// UNKNOWN_LIBCALL if there is none. 255e50ed30282bb5b4a9ed952580523f2dda16215acOwen Anderson Libcall getFPEXT(EVT OpVT, EVT RetVT); 256b2ff885aaed8f9b033b16ca78d645650efc32433Duncan Sands 257b2ff885aaed8f9b033b16ca78d645650efc32433Duncan Sands /// getFPROUND - Return the FPROUND_*_* value for the given types, or 258b2ff885aaed8f9b033b16ca78d645650efc32433Duncan Sands /// UNKNOWN_LIBCALL if there is none. 259e50ed30282bb5b4a9ed952580523f2dda16215acOwen Anderson Libcall getFPROUND(EVT OpVT, EVT RetVT); 260b2ff885aaed8f9b033b16ca78d645650efc32433Duncan Sands 261b2ff885aaed8f9b033b16ca78d645650efc32433Duncan Sands /// getFPTOSINT - Return the FPTOSINT_*_* value for the given types, or 262b2ff885aaed8f9b033b16ca78d645650efc32433Duncan Sands /// UNKNOWN_LIBCALL if there is none. 263e50ed30282bb5b4a9ed952580523f2dda16215acOwen Anderson Libcall getFPTOSINT(EVT OpVT, EVT RetVT); 264b2ff885aaed8f9b033b16ca78d645650efc32433Duncan Sands 265b2ff885aaed8f9b033b16ca78d645650efc32433Duncan Sands /// getFPTOUINT - Return the FPTOUINT_*_* value for the given types, or 266b2ff885aaed8f9b033b16ca78d645650efc32433Duncan Sands /// UNKNOWN_LIBCALL if there is none. 267e50ed30282bb5b4a9ed952580523f2dda16215acOwen Anderson Libcall getFPTOUINT(EVT OpVT, EVT RetVT); 268b2ff885aaed8f9b033b16ca78d645650efc32433Duncan Sands 269b2ff885aaed8f9b033b16ca78d645650efc32433Duncan Sands /// getSINTTOFP - Return the SINTTOFP_*_* value for the given types, or 270b2ff885aaed8f9b033b16ca78d645650efc32433Duncan Sands /// UNKNOWN_LIBCALL if there is none. 271e50ed30282bb5b4a9ed952580523f2dda16215acOwen Anderson Libcall getSINTTOFP(EVT OpVT, EVT RetVT); 272b2ff885aaed8f9b033b16ca78d645650efc32433Duncan Sands 273b2ff885aaed8f9b033b16ca78d645650efc32433Duncan Sands /// getUINTTOFP - Return the UINTTOFP_*_* value for the given types, or 274b2ff885aaed8f9b033b16ca78d645650efc32433Duncan Sands /// UNKNOWN_LIBCALL if there is none. 275e50ed30282bb5b4a9ed952580523f2dda16215acOwen Anderson Libcall getUINTTOFP(EVT OpVT, EVT RetVT); 276495600120e9d6c7599c599b7b16a9e8789c65aa5Evan Cheng} 277495600120e9d6c7599c599b7b16a9e8789c65aa5Evan Cheng} 278495600120e9d6c7599c599b7b16a9e8789c65aa5Evan Cheng 279495600120e9d6c7599c599b7b16a9e8789c65aa5Evan Cheng#endif 280