RuntimeLibcalls.h revision 5a42ae81f742aaab826b7a72cb0a9a7e5a957a07
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". 25362fee90b9a1d64ac091755466caf6a94ade22ebEric Christopher /// 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, 49362fee90b9a1d64ac091755466caf6a94ade22ebEric Christopher MULO_I32, 50362fee90b9a1d64ac091755466caf6a94ade22ebEric Christopher MULO_I64, 51362fee90b9a1d64ac091755466caf6a94ade22ebEric Christopher MULO_I128, 528983da729aa1ca99a11a3b98ae6280dfcdbadb39Anton Korobeynikov SDIV_I8, 53813090cf891325c715b9f6fb1546e6ce67fa8c8bAnton Korobeynikov SDIV_I16, 54495600120e9d6c7599c599b7b16a9e8789c65aa5Evan Cheng SDIV_I32, 55495600120e9d6c7599c599b7b16a9e8789c65aa5Evan Cheng SDIV_I64, 565ac319ac7125b009adddcc49294d2e040c4a91e5Duncan Sands SDIV_I128, 578983da729aa1ca99a11a3b98ae6280dfcdbadb39Anton Korobeynikov UDIV_I8, 58813090cf891325c715b9f6fb1546e6ce67fa8c8bAnton Korobeynikov UDIV_I16, 59495600120e9d6c7599c599b7b16a9e8789c65aa5Evan Cheng UDIV_I32, 60495600120e9d6c7599c599b7b16a9e8789c65aa5Evan Cheng UDIV_I64, 615ac319ac7125b009adddcc49294d2e040c4a91e5Duncan Sands UDIV_I128, 628983da729aa1ca99a11a3b98ae6280dfcdbadb39Anton Korobeynikov SREM_I8, 63813090cf891325c715b9f6fb1546e6ce67fa8c8bAnton Korobeynikov SREM_I16, 64495600120e9d6c7599c599b7b16a9e8789c65aa5Evan Cheng SREM_I32, 65495600120e9d6c7599c599b7b16a9e8789c65aa5Evan Cheng SREM_I64, 665ac319ac7125b009adddcc49294d2e040c4a91e5Duncan Sands SREM_I128, 678983da729aa1ca99a11a3b98ae6280dfcdbadb39Anton Korobeynikov UREM_I8, 68813090cf891325c715b9f6fb1546e6ce67fa8c8bAnton Korobeynikov UREM_I16, 69495600120e9d6c7599c599b7b16a9e8789c65aa5Evan Cheng UREM_I32, 70495600120e9d6c7599c599b7b16a9e8789c65aa5Evan Cheng UREM_I64, 715ac319ac7125b009adddcc49294d2e040c4a91e5Duncan Sands UREM_I128, 728e23e815ad1136721acdfcce76975a37c8a2c036Evan Cheng SDIVREM_I8, 738e23e815ad1136721acdfcce76975a37c8a2c036Evan Cheng SDIVREM_I16, 748e23e815ad1136721acdfcce76975a37c8a2c036Evan Cheng SDIVREM_I32, 758e23e815ad1136721acdfcce76975a37c8a2c036Evan Cheng SDIVREM_I64, 768e23e815ad1136721acdfcce76975a37c8a2c036Evan Cheng SDIVREM_I128, 778e23e815ad1136721acdfcce76975a37c8a2c036Evan Cheng UDIVREM_I8, 788e23e815ad1136721acdfcce76975a37c8a2c036Evan Cheng UDIVREM_I16, 798e23e815ad1136721acdfcce76975a37c8a2c036Evan Cheng UDIVREM_I32, 808e23e815ad1136721acdfcce76975a37c8a2c036Evan Cheng UDIVREM_I64, 818e23e815ad1136721acdfcce76975a37c8a2c036Evan Cheng UDIVREM_I128, 82495600120e9d6c7599c599b7b16a9e8789c65aa5Evan Cheng NEG_I32, 83495600120e9d6c7599c599b7b16a9e8789c65aa5Evan Cheng NEG_I64, 84495600120e9d6c7599c599b7b16a9e8789c65aa5Evan Cheng 85495600120e9d6c7599c599b7b16a9e8789c65aa5Evan Cheng // FLOATING POINT 86495600120e9d6c7599c599b7b16a9e8789c65aa5Evan Cheng ADD_F32, 87495600120e9d6c7599c599b7b16a9e8789c65aa5Evan Cheng ADD_F64, 88007f9847c44ddbe7fd04cba362b4ec0f0f40964bDuncan Sands ADD_F80, 8924d315dc053e8130593a8053bd6dc0245632f5f3Tim Northover ADD_F128, 90161e897b0fb35d156b2fe720fadabd975b0d6723Dale Johannesen ADD_PPCF128, 91495600120e9d6c7599c599b7b16a9e8789c65aa5Evan Cheng SUB_F32, 92495600120e9d6c7599c599b7b16a9e8789c65aa5Evan Cheng SUB_F64, 93007f9847c44ddbe7fd04cba362b4ec0f0f40964bDuncan Sands SUB_F80, 9424d315dc053e8130593a8053bd6dc0245632f5f3Tim Northover SUB_F128, 95161e897b0fb35d156b2fe720fadabd975b0d6723Dale Johannesen SUB_PPCF128, 96495600120e9d6c7599c599b7b16a9e8789c65aa5Evan Cheng MUL_F32, 97495600120e9d6c7599c599b7b16a9e8789c65aa5Evan Cheng MUL_F64, 98007f9847c44ddbe7fd04cba362b4ec0f0f40964bDuncan Sands MUL_F80, 9924d315dc053e8130593a8053bd6dc0245632f5f3Tim Northover MUL_F128, 100161e897b0fb35d156b2fe720fadabd975b0d6723Dale Johannesen MUL_PPCF128, 101495600120e9d6c7599c599b7b16a9e8789c65aa5Evan Cheng DIV_F32, 102495600120e9d6c7599c599b7b16a9e8789c65aa5Evan Cheng DIV_F64, 103007f9847c44ddbe7fd04cba362b4ec0f0f40964bDuncan Sands DIV_F80, 10424d315dc053e8130593a8053bd6dc0245632f5f3Tim Northover DIV_F128, 105161e897b0fb35d156b2fe720fadabd975b0d6723Dale Johannesen DIV_PPCF128, 106495600120e9d6c7599c599b7b16a9e8789c65aa5Evan Cheng REM_F32, 107495600120e9d6c7599c599b7b16a9e8789c65aa5Evan Cheng REM_F64, 108007f9847c44ddbe7fd04cba362b4ec0f0f40964bDuncan Sands REM_F80, 10924d315dc053e8130593a8053bd6dc0245632f5f3Tim Northover REM_F128, 110161e897b0fb35d156b2fe720fadabd975b0d6723Dale Johannesen REM_PPCF128, 11133390848a7eca75301d04a59b89b516d83e19ee0Cameron Zwarich FMA_F32, 11233390848a7eca75301d04a59b89b516d83e19ee0Cameron Zwarich FMA_F64, 11333390848a7eca75301d04a59b89b516d83e19ee0Cameron Zwarich FMA_F80, 11424d315dc053e8130593a8053bd6dc0245632f5f3Tim Northover FMA_F128, 11533390848a7eca75301d04a59b89b516d83e19ee0Cameron Zwarich FMA_PPCF128, 116495600120e9d6c7599c599b7b16a9e8789c65aa5Evan Cheng POWI_F32, 117495600120e9d6c7599c599b7b16a9e8789c65aa5Evan Cheng POWI_F64, 118161e897b0fb35d156b2fe720fadabd975b0d6723Dale Johannesen POWI_F80, 11924d315dc053e8130593a8053bd6dc0245632f5f3Tim Northover POWI_F128, 120161e897b0fb35d156b2fe720fadabd975b0d6723Dale Johannesen POWI_PPCF128, 121495600120e9d6c7599c599b7b16a9e8789c65aa5Evan Cheng SQRT_F32, 122495600120e9d6c7599c599b7b16a9e8789c65aa5Evan Cheng SQRT_F64, 123161e897b0fb35d156b2fe720fadabd975b0d6723Dale Johannesen SQRT_F80, 12424d315dc053e8130593a8053bd6dc0245632f5f3Tim Northover SQRT_F128, 125161e897b0fb35d156b2fe720fadabd975b0d6723Dale Johannesen SQRT_PPCF128, 1267794f2a3a7778bdbc9bdd861db1fe914450e0470Dale Johannesen LOG_F32, 1277794f2a3a7778bdbc9bdd861db1fe914450e0470Dale Johannesen LOG_F64, 1287794f2a3a7778bdbc9bdd861db1fe914450e0470Dale Johannesen LOG_F80, 12924d315dc053e8130593a8053bd6dc0245632f5f3Tim Northover LOG_F128, 1307794f2a3a7778bdbc9bdd861db1fe914450e0470Dale Johannesen LOG_PPCF128, 1317794f2a3a7778bdbc9bdd861db1fe914450e0470Dale Johannesen LOG2_F32, 1327794f2a3a7778bdbc9bdd861db1fe914450e0470Dale Johannesen LOG2_F64, 1337794f2a3a7778bdbc9bdd861db1fe914450e0470Dale Johannesen LOG2_F80, 13424d315dc053e8130593a8053bd6dc0245632f5f3Tim Northover LOG2_F128, 1357794f2a3a7778bdbc9bdd861db1fe914450e0470Dale Johannesen LOG2_PPCF128, 1367794f2a3a7778bdbc9bdd861db1fe914450e0470Dale Johannesen LOG10_F32, 1377794f2a3a7778bdbc9bdd861db1fe914450e0470Dale Johannesen LOG10_F64, 1387794f2a3a7778bdbc9bdd861db1fe914450e0470Dale Johannesen LOG10_F80, 13924d315dc053e8130593a8053bd6dc0245632f5f3Tim Northover LOG10_F128, 1407794f2a3a7778bdbc9bdd861db1fe914450e0470Dale Johannesen LOG10_PPCF128, 1417794f2a3a7778bdbc9bdd861db1fe914450e0470Dale Johannesen EXP_F32, 1427794f2a3a7778bdbc9bdd861db1fe914450e0470Dale Johannesen EXP_F64, 1437794f2a3a7778bdbc9bdd861db1fe914450e0470Dale Johannesen EXP_F80, 14424d315dc053e8130593a8053bd6dc0245632f5f3Tim Northover EXP_F128, 1457794f2a3a7778bdbc9bdd861db1fe914450e0470Dale Johannesen EXP_PPCF128, 1467794f2a3a7778bdbc9bdd861db1fe914450e0470Dale Johannesen EXP2_F32, 1477794f2a3a7778bdbc9bdd861db1fe914450e0470Dale Johannesen EXP2_F64, 1487794f2a3a7778bdbc9bdd861db1fe914450e0470Dale Johannesen EXP2_F80, 14924d315dc053e8130593a8053bd6dc0245632f5f3Tim Northover EXP2_F128, 1507794f2a3a7778bdbc9bdd861db1fe914450e0470Dale Johannesen EXP2_PPCF128, 151495600120e9d6c7599c599b7b16a9e8789c65aa5Evan Cheng SIN_F32, 152495600120e9d6c7599c599b7b16a9e8789c65aa5Evan Cheng SIN_F64, 153007f9847c44ddbe7fd04cba362b4ec0f0f40964bDuncan Sands SIN_F80, 15424d315dc053e8130593a8053bd6dc0245632f5f3Tim Northover SIN_F128, 155007f9847c44ddbe7fd04cba362b4ec0f0f40964bDuncan Sands SIN_PPCF128, 156495600120e9d6c7599c599b7b16a9e8789c65aa5Evan Cheng COS_F32, 157495600120e9d6c7599c599b7b16a9e8789c65aa5Evan Cheng COS_F64, 158007f9847c44ddbe7fd04cba362b4ec0f0f40964bDuncan Sands COS_F80, 15924d315dc053e8130593a8053bd6dc0245632f5f3Tim Northover COS_F128, 160007f9847c44ddbe7fd04cba362b4ec0f0f40964bDuncan Sands COS_PPCF128, 1618688a58c53b46d2dda9bf50dafd5195790a7ed58Evan Cheng SINCOS_F32, 1628688a58c53b46d2dda9bf50dafd5195790a7ed58Evan Cheng SINCOS_F64, 1638688a58c53b46d2dda9bf50dafd5195790a7ed58Evan Cheng SINCOS_F80, 1648688a58c53b46d2dda9bf50dafd5195790a7ed58Evan Cheng SINCOS_F128, 1658688a58c53b46d2dda9bf50dafd5195790a7ed58Evan Cheng SINCOS_PPCF128, 166e54be104180d81b61c5fcc29ccb7960f9b78476eDan Gohman POW_F32, 167e54be104180d81b61c5fcc29ccb7960f9b78476eDan Gohman POW_F64, 168e54be104180d81b61c5fcc29ccb7960f9b78476eDan Gohman POW_F80, 16924d315dc053e8130593a8053bd6dc0245632f5f3Tim Northover POW_F128, 170e54be104180d81b61c5fcc29ccb7960f9b78476eDan Gohman POW_PPCF128, 1712bb1e3eede14dd8a965506465e2876fb1ae765c2Dan Gohman CEIL_F32, 1722bb1e3eede14dd8a965506465e2876fb1ae765c2Dan Gohman CEIL_F64, 1732bb1e3eede14dd8a965506465e2876fb1ae765c2Dan Gohman CEIL_F80, 17424d315dc053e8130593a8053bd6dc0245632f5f3Tim Northover CEIL_F128, 1752bb1e3eede14dd8a965506465e2876fb1ae765c2Dan Gohman CEIL_PPCF128, 1762bb1e3eede14dd8a965506465e2876fb1ae765c2Dan Gohman TRUNC_F32, 1772bb1e3eede14dd8a965506465e2876fb1ae765c2Dan Gohman TRUNC_F64, 1782bb1e3eede14dd8a965506465e2876fb1ae765c2Dan Gohman TRUNC_F80, 17924d315dc053e8130593a8053bd6dc0245632f5f3Tim Northover TRUNC_F128, 1802bb1e3eede14dd8a965506465e2876fb1ae765c2Dan Gohman TRUNC_PPCF128, 1812bb1e3eede14dd8a965506465e2876fb1ae765c2Dan Gohman RINT_F32, 1822bb1e3eede14dd8a965506465e2876fb1ae765c2Dan Gohman RINT_F64, 1832bb1e3eede14dd8a965506465e2876fb1ae765c2Dan Gohman RINT_F80, 18424d315dc053e8130593a8053bd6dc0245632f5f3Tim Northover RINT_F128, 1852bb1e3eede14dd8a965506465e2876fb1ae765c2Dan Gohman RINT_PPCF128, 1862bb1e3eede14dd8a965506465e2876fb1ae765c2Dan Gohman NEARBYINT_F32, 1872bb1e3eede14dd8a965506465e2876fb1ae765c2Dan Gohman NEARBYINT_F64, 1882bb1e3eede14dd8a965506465e2876fb1ae765c2Dan Gohman NEARBYINT_F80, 18924d315dc053e8130593a8053bd6dc0245632f5f3Tim Northover NEARBYINT_F128, 1902bb1e3eede14dd8a965506465e2876fb1ae765c2Dan Gohman NEARBYINT_PPCF128, 19141418d17cced656f91038b2482bc9d173b4974b0Hal Finkel ROUND_F32, 19241418d17cced656f91038b2482bc9d173b4974b0Hal Finkel ROUND_F64, 19341418d17cced656f91038b2482bc9d173b4974b0Hal Finkel ROUND_F80, 19441418d17cced656f91038b2482bc9d173b4974b0Hal Finkel ROUND_F128, 19541418d17cced656f91038b2482bc9d173b4974b0Hal Finkel ROUND_PPCF128, 1962bb1e3eede14dd8a965506465e2876fb1ae765c2Dan Gohman FLOOR_F32, 1972bb1e3eede14dd8a965506465e2876fb1ae765c2Dan Gohman FLOOR_F64, 1982bb1e3eede14dd8a965506465e2876fb1ae765c2Dan Gohman FLOOR_F80, 19924d315dc053e8130593a8053bd6dc0245632f5f3Tim Northover FLOOR_F128, 2002bb1e3eede14dd8a965506465e2876fb1ae765c2Dan Gohman FLOOR_PPCF128, 201d2c817eff1d158398fb0a620fa762bf95207922fDuncan Sands COPYSIGN_F32, 202d2c817eff1d158398fb0a620fa762bf95207922fDuncan Sands COPYSIGN_F64, 203d2c817eff1d158398fb0a620fa762bf95207922fDuncan Sands COPYSIGN_F80, 20424d315dc053e8130593a8053bd6dc0245632f5f3Tim Northover COPYSIGN_F128, 205d2c817eff1d158398fb0a620fa762bf95207922fDuncan Sands COPYSIGN_PPCF128, 206495600120e9d6c7599c599b7b16a9e8789c65aa5Evan Cheng 207495600120e9d6c7599c599b7b16a9e8789c65aa5Evan Cheng // CONVERSION 20824d315dc053e8130593a8053bd6dc0245632f5f3Tim Northover FPEXT_F64_F128, 20924d315dc053e8130593a8053bd6dc0245632f5f3Tim Northover FPEXT_F32_F128, 210495600120e9d6c7599c599b7b16a9e8789c65aa5Evan Cheng FPEXT_F32_F64, 211927411b7ce0b7852fe4f392d8cd4faaa3881f852Anton Korobeynikov FPEXT_F16_F32, 212927411b7ce0b7852fe4f392d8cd4faaa3881f852Anton Korobeynikov FPROUND_F32_F16, 213495600120e9d6c7599c599b7b16a9e8789c65aa5Evan Cheng FPROUND_F64_F32, 214e36bfe678df09f46e1eac60b15105c1ccd2c5382Bruno Cardoso Lopes FPROUND_F80_F32, 21524d315dc053e8130593a8053bd6dc0245632f5f3Tim Northover FPROUND_F128_F32, 216e36bfe678df09f46e1eac60b15105c1ccd2c5382Bruno Cardoso Lopes FPROUND_PPCF128_F32, 217e36bfe678df09f46e1eac60b15105c1ccd2c5382Bruno Cardoso Lopes FPROUND_F80_F64, 21824d315dc053e8130593a8053bd6dc0245632f5f3Tim Northover FPROUND_F128_F64, 219e36bfe678df09f46e1eac60b15105c1ccd2c5382Bruno Cardoso Lopes FPROUND_PPCF128_F64, 2208aa207ee306b6a5ce753511a5f811fc1cd2468e2Sanjiv Gupta FPTOSINT_F32_I8, 2218aa207ee306b6a5ce753511a5f811fc1cd2468e2Sanjiv Gupta FPTOSINT_F32_I16, 222495600120e9d6c7599c599b7b16a9e8789c65aa5Evan Cheng FPTOSINT_F32_I32, 223495600120e9d6c7599c599b7b16a9e8789c65aa5Evan Cheng FPTOSINT_F32_I64, 224a2e9485e34f1348526ed104dbdc194673e291077Dan Gohman FPTOSINT_F32_I128, 225de0118c324a3fb8b0b5afa8e46996d9b81666bfdAnton Korobeynikov FPTOSINT_F64_I8, 226de0118c324a3fb8b0b5afa8e46996d9b81666bfdAnton Korobeynikov FPTOSINT_F64_I16, 227495600120e9d6c7599c599b7b16a9e8789c65aa5Evan Cheng FPTOSINT_F64_I32, 228495600120e9d6c7599c599b7b16a9e8789c65aa5Evan Cheng FPTOSINT_F64_I64, 229a2e9485e34f1348526ed104dbdc194673e291077Dan Gohman FPTOSINT_F64_I128, 230be1ad4de2900451626c8d4ace07b9ea16099ea1dDuncan Sands FPTOSINT_F80_I32, 231161e897b0fb35d156b2fe720fadabd975b0d6723Dale Johannesen FPTOSINT_F80_I64, 232a2e9485e34f1348526ed104dbdc194673e291077Dan Gohman FPTOSINT_F80_I128, 23324d315dc053e8130593a8053bd6dc0245632f5f3Tim Northover FPTOSINT_F128_I32, 23424d315dc053e8130593a8053bd6dc0245632f5f3Tim Northover FPTOSINT_F128_I64, 23524d315dc053e8130593a8053bd6dc0245632f5f3Tim Northover FPTOSINT_F128_I128, 236041cde26eaf4ef6171ff1a44aeedd08d7a1cba6cDuncan Sands FPTOSINT_PPCF128_I32, 237161e897b0fb35d156b2fe720fadabd975b0d6723Dale Johannesen FPTOSINT_PPCF128_I64, 238a2e9485e34f1348526ed104dbdc194673e291077Dan Gohman FPTOSINT_PPCF128_I128, 2398aa207ee306b6a5ce753511a5f811fc1cd2468e2Sanjiv Gupta FPTOUINT_F32_I8, 2408aa207ee306b6a5ce753511a5f811fc1cd2468e2Sanjiv Gupta FPTOUINT_F32_I16, 241495600120e9d6c7599c599b7b16a9e8789c65aa5Evan Cheng FPTOUINT_F32_I32, 242495600120e9d6c7599c599b7b16a9e8789c65aa5Evan Cheng FPTOUINT_F32_I64, 243a2e9485e34f1348526ed104dbdc194673e291077Dan Gohman FPTOUINT_F32_I128, 244de0118c324a3fb8b0b5afa8e46996d9b81666bfdAnton Korobeynikov FPTOUINT_F64_I8, 245de0118c324a3fb8b0b5afa8e46996d9b81666bfdAnton Korobeynikov FPTOUINT_F64_I16, 246495600120e9d6c7599c599b7b16a9e8789c65aa5Evan Cheng FPTOUINT_F64_I32, 247495600120e9d6c7599c599b7b16a9e8789c65aa5Evan Cheng FPTOUINT_F64_I64, 248a2e9485e34f1348526ed104dbdc194673e291077Dan Gohman FPTOUINT_F64_I128, 249161e897b0fb35d156b2fe720fadabd975b0d6723Dale Johannesen FPTOUINT_F80_I32, 250161e897b0fb35d156b2fe720fadabd975b0d6723Dale Johannesen FPTOUINT_F80_I64, 251a2e9485e34f1348526ed104dbdc194673e291077Dan Gohman FPTOUINT_F80_I128, 25224d315dc053e8130593a8053bd6dc0245632f5f3Tim Northover FPTOUINT_F128_I32, 25324d315dc053e8130593a8053bd6dc0245632f5f3Tim Northover FPTOUINT_F128_I64, 25424d315dc053e8130593a8053bd6dc0245632f5f3Tim Northover FPTOUINT_F128_I128, 255041cde26eaf4ef6171ff1a44aeedd08d7a1cba6cDuncan Sands FPTOUINT_PPCF128_I32, 256161e897b0fb35d156b2fe720fadabd975b0d6723Dale Johannesen FPTOUINT_PPCF128_I64, 257a2e9485e34f1348526ed104dbdc194673e291077Dan Gohman FPTOUINT_PPCF128_I128, 258495600120e9d6c7599c599b7b16a9e8789c65aa5Evan Cheng SINTTOFP_I32_F32, 259495600120e9d6c7599c599b7b16a9e8789c65aa5Evan Cheng SINTTOFP_I32_F64, 2609bed0f58eb7f5e9e22d062f3880a5fabfdd0dfddDuncan Sands SINTTOFP_I32_F80, 26124d315dc053e8130593a8053bd6dc0245632f5f3Tim Northover SINTTOFP_I32_F128, 2629bed0f58eb7f5e9e22d062f3880a5fabfdd0dfddDuncan Sands SINTTOFP_I32_PPCF128, 263495600120e9d6c7599c599b7b16a9e8789c65aa5Evan Cheng SINTTOFP_I64_F32, 264495600120e9d6c7599c599b7b16a9e8789c65aa5Evan Cheng SINTTOFP_I64_F64, 265161e897b0fb35d156b2fe720fadabd975b0d6723Dale Johannesen SINTTOFP_I64_F80, 26624d315dc053e8130593a8053bd6dc0245632f5f3Tim Northover SINTTOFP_I64_F128, 267161e897b0fb35d156b2fe720fadabd975b0d6723Dale Johannesen SINTTOFP_I64_PPCF128, 268d91446de7a89a22c8ea1cbfd40fe2528467a4ccbDan Gohman SINTTOFP_I128_F32, 269d91446de7a89a22c8ea1cbfd40fe2528467a4ccbDan Gohman SINTTOFP_I128_F64, 270d91446de7a89a22c8ea1cbfd40fe2528467a4ccbDan Gohman SINTTOFP_I128_F80, 27124d315dc053e8130593a8053bd6dc0245632f5f3Tim Northover SINTTOFP_I128_F128, 272d91446de7a89a22c8ea1cbfd40fe2528467a4ccbDan Gohman SINTTOFP_I128_PPCF128, 273495600120e9d6c7599c599b7b16a9e8789c65aa5Evan Cheng UINTTOFP_I32_F32, 274495600120e9d6c7599c599b7b16a9e8789c65aa5Evan Cheng UINTTOFP_I32_F64, 275ac6cecec189ba9689c42543c3106c02b96d788daDuncan Sands UINTTOFP_I32_F80, 27624d315dc053e8130593a8053bd6dc0245632f5f3Tim Northover UINTTOFP_I32_F128, 277ac6cecec189ba9689c42543c3106c02b96d788daDuncan Sands UINTTOFP_I32_PPCF128, 278495600120e9d6c7599c599b7b16a9e8789c65aa5Evan Cheng UINTTOFP_I64_F32, 279495600120e9d6c7599c599b7b16a9e8789c65aa5Evan Cheng UINTTOFP_I64_F64, 280ac6cecec189ba9689c42543c3106c02b96d788daDuncan Sands UINTTOFP_I64_F80, 28124d315dc053e8130593a8053bd6dc0245632f5f3Tim Northover UINTTOFP_I64_F128, 282ac6cecec189ba9689c42543c3106c02b96d788daDuncan Sands UINTTOFP_I64_PPCF128, 283ac6cecec189ba9689c42543c3106c02b96d788daDuncan Sands UINTTOFP_I128_F32, 284ac6cecec189ba9689c42543c3106c02b96d788daDuncan Sands UINTTOFP_I128_F64, 285ac6cecec189ba9689c42543c3106c02b96d788daDuncan Sands UINTTOFP_I128_F80, 28624d315dc053e8130593a8053bd6dc0245632f5f3Tim Northover UINTTOFP_I128_F128, 287ac6cecec189ba9689c42543c3106c02b96d788daDuncan Sands UINTTOFP_I128_PPCF128, 288495600120e9d6c7599c599b7b16a9e8789c65aa5Evan Cheng 289495600120e9d6c7599c599b7b16a9e8789c65aa5Evan Cheng // COMPARISON 290495600120e9d6c7599c599b7b16a9e8789c65aa5Evan Cheng OEQ_F32, 291495600120e9d6c7599c599b7b16a9e8789c65aa5Evan Cheng OEQ_F64, 29224d315dc053e8130593a8053bd6dc0245632f5f3Tim Northover OEQ_F128, 293495600120e9d6c7599c599b7b16a9e8789c65aa5Evan Cheng UNE_F32, 294495600120e9d6c7599c599b7b16a9e8789c65aa5Evan Cheng UNE_F64, 29524d315dc053e8130593a8053bd6dc0245632f5f3Tim Northover UNE_F128, 296495600120e9d6c7599c599b7b16a9e8789c65aa5Evan Cheng OGE_F32, 297495600120e9d6c7599c599b7b16a9e8789c65aa5Evan Cheng OGE_F64, 29824d315dc053e8130593a8053bd6dc0245632f5f3Tim Northover OGE_F128, 299495600120e9d6c7599c599b7b16a9e8789c65aa5Evan Cheng OLT_F32, 300495600120e9d6c7599c599b7b16a9e8789c65aa5Evan Cheng OLT_F64, 30124d315dc053e8130593a8053bd6dc0245632f5f3Tim Northover OLT_F128, 302495600120e9d6c7599c599b7b16a9e8789c65aa5Evan Cheng OLE_F32, 303495600120e9d6c7599c599b7b16a9e8789c65aa5Evan Cheng OLE_F64, 30424d315dc053e8130593a8053bd6dc0245632f5f3Tim Northover OLE_F128, 305495600120e9d6c7599c599b7b16a9e8789c65aa5Evan Cheng OGT_F32, 306495600120e9d6c7599c599b7b16a9e8789c65aa5Evan Cheng OGT_F64, 30724d315dc053e8130593a8053bd6dc0245632f5f3Tim Northover OGT_F128, 308495600120e9d6c7599c599b7b16a9e8789c65aa5Evan Cheng UO_F32, 309495600120e9d6c7599c599b7b16a9e8789c65aa5Evan Cheng UO_F64, 31024d315dc053e8130593a8053bd6dc0245632f5f3Tim Northover UO_F128, 311991d3616c8383688f1acf443cc698edef850da4dEvan Cheng O_F32, 312991d3616c8383688f1acf443cc698edef850da4dEvan Cheng O_F64, 31324d315dc053e8130593a8053bd6dc0245632f5f3Tim Northover O_F128, 314495600120e9d6c7599c599b7b16a9e8789c65aa5Evan Cheng 315a114baa5bf0d70aed8b8cf576a864005c0d6a128Sanjiv Gupta // MEMORY 316a114baa5bf0d70aed8b8cf576a864005c0d6a128Sanjiv Gupta MEMCPY, 317a114baa5bf0d70aed8b8cf576a864005c0d6a128Sanjiv Gupta MEMSET, 318a114baa5bf0d70aed8b8cf576a864005c0d6a128Sanjiv Gupta MEMMOVE, 319a114baa5bf0d70aed8b8cf576a864005c0d6a128Sanjiv Gupta 320b0f1e1780c736c62fb99e5824825d2a60a53b53bDuncan Sands // EXCEPTION HANDLING 321b0f1e1780c736c62fb99e5824825d2a60a53b53bDuncan Sands UNWIND_RESUME, 322b0f1e1780c736c62fb99e5824825d2a60a53b53bDuncan Sands 323e03262fcfc09356a0e3ec589041bc2e0248944e9Jim Grosbach // Family ATOMICs 324e03262fcfc09356a0e3ec589041bc2e0248944e9Jim Grosbach SYNC_VAL_COMPARE_AND_SWAP_1, 325e03262fcfc09356a0e3ec589041bc2e0248944e9Jim Grosbach SYNC_VAL_COMPARE_AND_SWAP_2, 326e03262fcfc09356a0e3ec589041bc2e0248944e9Jim Grosbach SYNC_VAL_COMPARE_AND_SWAP_4, 327e03262fcfc09356a0e3ec589041bc2e0248944e9Jim Grosbach SYNC_VAL_COMPARE_AND_SWAP_8, 328641bea117d2f5e68c11156b9eea1c9270825dfb9David Majnemer SYNC_VAL_COMPARE_AND_SWAP_16, 329ef6eb9c7ab7967790566c5e2d47977d89fc060eeJim Grosbach SYNC_LOCK_TEST_AND_SET_1, 330ef6eb9c7ab7967790566c5e2d47977d89fc060eeJim Grosbach SYNC_LOCK_TEST_AND_SET_2, 331ef6eb9c7ab7967790566c5e2d47977d89fc060eeJim Grosbach SYNC_LOCK_TEST_AND_SET_4, 332ef6eb9c7ab7967790566c5e2d47977d89fc060eeJim Grosbach SYNC_LOCK_TEST_AND_SET_8, 333641bea117d2f5e68c11156b9eea1c9270825dfb9David Majnemer SYNC_LOCK_TEST_AND_SET_16, 334e03262fcfc09356a0e3ec589041bc2e0248944e9Jim Grosbach SYNC_FETCH_AND_ADD_1, 335e03262fcfc09356a0e3ec589041bc2e0248944e9Jim Grosbach SYNC_FETCH_AND_ADD_2, 336e03262fcfc09356a0e3ec589041bc2e0248944e9Jim Grosbach SYNC_FETCH_AND_ADD_4, 337e03262fcfc09356a0e3ec589041bc2e0248944e9Jim Grosbach SYNC_FETCH_AND_ADD_8, 338641bea117d2f5e68c11156b9eea1c9270825dfb9David Majnemer SYNC_FETCH_AND_ADD_16, 339e03262fcfc09356a0e3ec589041bc2e0248944e9Jim Grosbach SYNC_FETCH_AND_SUB_1, 340e03262fcfc09356a0e3ec589041bc2e0248944e9Jim Grosbach SYNC_FETCH_AND_SUB_2, 341e03262fcfc09356a0e3ec589041bc2e0248944e9Jim Grosbach SYNC_FETCH_AND_SUB_4, 342e03262fcfc09356a0e3ec589041bc2e0248944e9Jim Grosbach SYNC_FETCH_AND_SUB_8, 343641bea117d2f5e68c11156b9eea1c9270825dfb9David Majnemer SYNC_FETCH_AND_SUB_16, 344e03262fcfc09356a0e3ec589041bc2e0248944e9Jim Grosbach SYNC_FETCH_AND_AND_1, 345e03262fcfc09356a0e3ec589041bc2e0248944e9Jim Grosbach SYNC_FETCH_AND_AND_2, 346e03262fcfc09356a0e3ec589041bc2e0248944e9Jim Grosbach SYNC_FETCH_AND_AND_4, 347e03262fcfc09356a0e3ec589041bc2e0248944e9Jim Grosbach SYNC_FETCH_AND_AND_8, 348641bea117d2f5e68c11156b9eea1c9270825dfb9David Majnemer SYNC_FETCH_AND_AND_16, 349e03262fcfc09356a0e3ec589041bc2e0248944e9Jim Grosbach SYNC_FETCH_AND_OR_1, 350e03262fcfc09356a0e3ec589041bc2e0248944e9Jim Grosbach SYNC_FETCH_AND_OR_2, 351e03262fcfc09356a0e3ec589041bc2e0248944e9Jim Grosbach SYNC_FETCH_AND_OR_4, 352e03262fcfc09356a0e3ec589041bc2e0248944e9Jim Grosbach SYNC_FETCH_AND_OR_8, 353641bea117d2f5e68c11156b9eea1c9270825dfb9David Majnemer SYNC_FETCH_AND_OR_16, 354e03262fcfc09356a0e3ec589041bc2e0248944e9Jim Grosbach SYNC_FETCH_AND_XOR_1, 355e03262fcfc09356a0e3ec589041bc2e0248944e9Jim Grosbach SYNC_FETCH_AND_XOR_2, 356e03262fcfc09356a0e3ec589041bc2e0248944e9Jim Grosbach SYNC_FETCH_AND_XOR_4, 357e03262fcfc09356a0e3ec589041bc2e0248944e9Jim Grosbach SYNC_FETCH_AND_XOR_8, 358641bea117d2f5e68c11156b9eea1c9270825dfb9David Majnemer SYNC_FETCH_AND_XOR_16, 359e03262fcfc09356a0e3ec589041bc2e0248944e9Jim Grosbach SYNC_FETCH_AND_NAND_1, 360e03262fcfc09356a0e3ec589041bc2e0248944e9Jim Grosbach SYNC_FETCH_AND_NAND_2, 361e03262fcfc09356a0e3ec589041bc2e0248944e9Jim Grosbach SYNC_FETCH_AND_NAND_4, 362e03262fcfc09356a0e3ec589041bc2e0248944e9Jim Grosbach SYNC_FETCH_AND_NAND_8, 363641bea117d2f5e68c11156b9eea1c9270825dfb9David Majnemer SYNC_FETCH_AND_NAND_16, 3645a42ae81f742aaab826b7a72cb0a9a7e5a957a07Tim Northover SYNC_FETCH_AND_MAX_1, 3655a42ae81f742aaab826b7a72cb0a9a7e5a957a07Tim Northover SYNC_FETCH_AND_MAX_2, 3665a42ae81f742aaab826b7a72cb0a9a7e5a957a07Tim Northover SYNC_FETCH_AND_MAX_4, 3675a42ae81f742aaab826b7a72cb0a9a7e5a957a07Tim Northover SYNC_FETCH_AND_MAX_8, 3685a42ae81f742aaab826b7a72cb0a9a7e5a957a07Tim Northover SYNC_FETCH_AND_MAX_16, 3695a42ae81f742aaab826b7a72cb0a9a7e5a957a07Tim Northover SYNC_FETCH_AND_UMAX_1, 3705a42ae81f742aaab826b7a72cb0a9a7e5a957a07Tim Northover SYNC_FETCH_AND_UMAX_2, 3715a42ae81f742aaab826b7a72cb0a9a7e5a957a07Tim Northover SYNC_FETCH_AND_UMAX_4, 3725a42ae81f742aaab826b7a72cb0a9a7e5a957a07Tim Northover SYNC_FETCH_AND_UMAX_8, 3735a42ae81f742aaab826b7a72cb0a9a7e5a957a07Tim Northover SYNC_FETCH_AND_UMAX_16, 3745a42ae81f742aaab826b7a72cb0a9a7e5a957a07Tim Northover SYNC_FETCH_AND_MIN_1, 3755a42ae81f742aaab826b7a72cb0a9a7e5a957a07Tim Northover SYNC_FETCH_AND_MIN_2, 3765a42ae81f742aaab826b7a72cb0a9a7e5a957a07Tim Northover SYNC_FETCH_AND_MIN_4, 3775a42ae81f742aaab826b7a72cb0a9a7e5a957a07Tim Northover SYNC_FETCH_AND_MIN_8, 3785a42ae81f742aaab826b7a72cb0a9a7e5a957a07Tim Northover SYNC_FETCH_AND_MIN_16, 3795a42ae81f742aaab826b7a72cb0a9a7e5a957a07Tim Northover SYNC_FETCH_AND_UMIN_1, 3805a42ae81f742aaab826b7a72cb0a9a7e5a957a07Tim Northover SYNC_FETCH_AND_UMIN_2, 3815a42ae81f742aaab826b7a72cb0a9a7e5a957a07Tim Northover SYNC_FETCH_AND_UMIN_4, 3825a42ae81f742aaab826b7a72cb0a9a7e5a957a07Tim Northover SYNC_FETCH_AND_UMIN_8, 3835a42ae81f742aaab826b7a72cb0a9a7e5a957a07Tim Northover SYNC_FETCH_AND_UMIN_16, 384e03262fcfc09356a0e3ec589041bc2e0248944e9Jim Grosbach 38515b2782ccf141930cc98507a1cb1d501fbfd4000Michael Gottesman // Stack Protector Fail. 38615b2782ccf141930cc98507a1cb1d501fbfd4000Michael Gottesman STACKPROTECTOR_CHECK_FAIL, 38715b2782ccf141930cc98507a1cb1d501fbfd4000Michael Gottesman 388495600120e9d6c7599c599b7b16a9e8789c65aa5Evan Cheng UNKNOWN_LIBCALL 389495600120e9d6c7599c599b7b16a9e8789c65aa5Evan Cheng }; 390b2ff885aaed8f9b033b16ca78d645650efc32433Duncan Sands 391b2ff885aaed8f9b033b16ca78d645650efc32433Duncan Sands /// getFPEXT - Return the FPEXT_*_* value for the given types, or 392b2ff885aaed8f9b033b16ca78d645650efc32433Duncan Sands /// UNKNOWN_LIBCALL if there is none. 393e50ed30282bb5b4a9ed952580523f2dda16215acOwen Anderson Libcall getFPEXT(EVT OpVT, EVT RetVT); 394b2ff885aaed8f9b033b16ca78d645650efc32433Duncan Sands 395b2ff885aaed8f9b033b16ca78d645650efc32433Duncan Sands /// getFPROUND - Return the FPROUND_*_* value for the given types, or 396b2ff885aaed8f9b033b16ca78d645650efc32433Duncan Sands /// UNKNOWN_LIBCALL if there is none. 397e50ed30282bb5b4a9ed952580523f2dda16215acOwen Anderson Libcall getFPROUND(EVT OpVT, EVT RetVT); 398b2ff885aaed8f9b033b16ca78d645650efc32433Duncan Sands 399b2ff885aaed8f9b033b16ca78d645650efc32433Duncan Sands /// getFPTOSINT - Return the FPTOSINT_*_* value for the given types, or 400b2ff885aaed8f9b033b16ca78d645650efc32433Duncan Sands /// UNKNOWN_LIBCALL if there is none. 401e50ed30282bb5b4a9ed952580523f2dda16215acOwen Anderson Libcall getFPTOSINT(EVT OpVT, EVT RetVT); 402b2ff885aaed8f9b033b16ca78d645650efc32433Duncan Sands 403b2ff885aaed8f9b033b16ca78d645650efc32433Duncan Sands /// getFPTOUINT - Return the FPTOUINT_*_* value for the given types, or 404b2ff885aaed8f9b033b16ca78d645650efc32433Duncan Sands /// UNKNOWN_LIBCALL if there is none. 405e50ed30282bb5b4a9ed952580523f2dda16215acOwen Anderson Libcall getFPTOUINT(EVT OpVT, EVT RetVT); 406b2ff885aaed8f9b033b16ca78d645650efc32433Duncan Sands 407b2ff885aaed8f9b033b16ca78d645650efc32433Duncan Sands /// getSINTTOFP - Return the SINTTOFP_*_* value for the given types, or 408b2ff885aaed8f9b033b16ca78d645650efc32433Duncan Sands /// UNKNOWN_LIBCALL if there is none. 409e50ed30282bb5b4a9ed952580523f2dda16215acOwen Anderson Libcall getSINTTOFP(EVT OpVT, EVT RetVT); 410b2ff885aaed8f9b033b16ca78d645650efc32433Duncan Sands 411b2ff885aaed8f9b033b16ca78d645650efc32433Duncan Sands /// getUINTTOFP - Return the UINTTOFP_*_* value for the given types, or 412b2ff885aaed8f9b033b16ca78d645650efc32433Duncan Sands /// UNKNOWN_LIBCALL if there is none. 413e50ed30282bb5b4a9ed952580523f2dda16215acOwen Anderson Libcall getUINTTOFP(EVT OpVT, EVT RetVT); 414495600120e9d6c7599c599b7b16a9e8789c65aa5Evan Cheng} 415495600120e9d6c7599c599b7b16a9e8789c65aa5Evan Cheng} 416495600120e9d6c7599c599b7b16a9e8789c65aa5Evan Cheng 417495600120e9d6c7599c599b7b16a9e8789c65aa5Evan Cheng#endif 418