1
0
mirror of https://github.com/exaloop/codon.git synced 2025-06-03 15:03:52 +08:00

106 lines
74 KiB
Python
Raw Normal View History

# Copyright (C) 2022-2025 Exaloop Inc. <https://exaloop.io>
@pure
@llvm
def ki_double(idx: int) -> u64:
@data = private unnamed_addr constant [256 x i64] [i64 4208095142473578, i64 0, i64 3387314423973544, i64 3838760076542274, i64 4030768804392682, i64 4136731738896254, i64 4203757248105145, i64 4249917568205994, i64 4283617341590296, i64 4309289223136604, i64 4329489775174550, i64 4345795907393188, i64 4359232558744730, i64 4370494503737299, i64 4380069246215646, i64 4388308869042394, i64 4395473957549321, i64 4401761481783924, i64 4407323076021240, i64 4412277362218204, i64 4416718463613199, i64 4420722014516422, i64 4424349484777079, i64 4427651345409294, i64 4430669422005229, i64 4433438668975191, i64 4435988524278344, i64 4438343955930065, i64 4440526279077425, i64 4442553800234660, i64 4444442329865861, i64 4446205593658138, i64 4447855565093316, i64 4449402736340121, i64 4450856340408624, i64 4452224534496486, i64 4453514552210512, i64 4454732830656798, i64 4455885117109368, i64 4456976558985043, i64 4458011780094444, i64 4458994945550386, i64 4459929817254120, i64 4460819801517196, i64 4461667990089170, i64 4462477195632268, i64 4463249982500384, i64 4463988693531856, i64 4464695473445501, i64 4465372289331869, i64 4466020948651920, i64 4466643115089764, i64 4467240322552142, i64 4467813987562542, i64 4468365420260672, i64 4468895834186994, i64 4469406355006040, i64 4469898028300364, i64 4470371826548633, i64 4470828655385770, i64 4471269359229841, i64 4471694726349190, i64 4472105493433674, i64 4472502349725738, i64 4472885940759935, i64 4473256871753524, i64 4473615710685532, i64 4473962991097124, i64 4474299214642296, i64 4474624853414418, i64 4474940352071305, i64 4475246129778808, i64 4475542581990776, i64 4475830082081194, i64 4476108982842610, i64 4476379617863426, i64 4476642302795321, i64 4476897336520866, i64 4477145002230339, i64 4477385568415884, i64 4477619289790266, i64 4477846408136804, i64 4478067153096380, i64 4478281742896886, i64 4478490385029917, i64 4478693276879082, i64 4478890606303906, i64 4479082552182886, i64 4479269284918997, i64 4479450966910588, i64 4479627752990372, i64 4479799790834988, i64 4479967221347354, i64 4480130179013872, i64 4480288792238368, i64 4480443183654460, i64 4480593470417939, i64 4480739764480586, i64 4480882172846772, i64 4481020797814010, i64 4481155737198612, i64 4481287084547452, i64 4481414929336784, i64 4481539357158974, i64 4481660449897960, i64 4481778285894165, i64 4481892940099539, i64 4482004484223382, i64 4482112986869492, i64 4482218513665204, i64 4482321127382802, i64 4482420888053758, i64 4482517853076245, i64 4482612077316275, i64 4482703613202871, i64 4482792510817576, i64 4482878817978627, i64 4482962580320076, i64 4483043841366126, i64 4483122642600925, i64 4483199023534056, i64 4483273021761922, i64 4483344673025224, i64 4483414011262724, i64 4483481068661428, i64 4483545875703378, i64 4483608461209170, i64 4483668852378323, i64 4483727074826624, i64 4483783152620564, i64 4483837108308932, i64 4483888962951686, i64 4483938736146144, i64 4483986446050596, i64 4484032109405372, i64 4484075741551420, i64 4484117356446452, i64 4484156966678662, i64 4484194583478081, i64 4484230216725550, i64 4484263874959345, i64 4484295565379450, i64 4484325293849474, i64 4484353064896186, i64 4484378881706674, i64 4484402746123075, i64 4484424658634833, i64 4484444618368474, i64 4484462623074794, i64 4484478669113436, i64 4484492751434740, i64 4484504863558830, i64 4484514997551788, i64 4484523143998833, i64 4484529291974394, i64 4484533429008906, i64 4484535541052219, i64 4484535612433424, i64 4484533625816926, i64 4484529562154580, i64 4484523400633636, i64 4484515118620291, i64 4484504691598554, i64 4484492093104164, i64 4484477294653230, i64 4484460265665252, i64 4484440973380154, i64 4484419382768918, i64 4484395456437370, i64 4484369154522621, i64 4484340434581640, i64 4484309251471359, i64 4484275557219678, i64 4484239300886654, i64 4484200428415112, i64 4484158882469814, i64 4484114602264271, i64 4484067523374160, i64 4484017577536216, i64 4483964692431365, i64 4483908791450714, i64 4483849793442887, i64 4483787612441036, i64 4483722157367660, i64 448
%p = getelementptr inbounds [256 x i64], ptr @data, i64 0, i64 %idx
%x = load i64, ptr %p, align 8
ret i64 %x
@pure
@llvm
def wi_double(idx: int) -> float:
@data = private unnamed_addr constant [256 x double] [double 0x3CCF493B7815D979, double 0x3C8B8D0BE3FDF6C6, double 0x3C9250AF3C2C5BB4, double 0x3C957CB938443B61, double 0x3C9801FCE82FA70C, double 0x3C9A230C2E4CD0BC, double 0x3C9C004D2F3861F7, double 0x3C9DAC2F5A747274, double 0x3C9F32482D4CD5C3, double 0x3CA04D32278EBBAD, double 0x3CA0F5053B025D43, double 0x3CA192A697413677, double 0x3CA227A28F7A1AF5, double 0x3CA2B52E3863D880, double 0x3CA33C3FC05791F5, double 0x3CA3BD9EC1A2B12F, double 0x3CA439EF8DFF9B55, double 0x3CA4B1BB363DFEA7, double 0x3CA52575621AD374, double 0x3CA59580A707CE96, double 0x3CA60231CFD97EEA, double 0x3CA66BD261A37C3D, double 0x3CA6D2A292000570, double 0x3CA736DAD346F8A6, double 0x3CA798AD10B32A77, double 0x3CA7F845AD46F543, double 0x3CA855CC53430A77, double 0x3CA8B1649E7B769A, double 0x3CA90B2EA94ECF98, double 0x3CA96347822C1EEA, double 0x3CA9B9C98E38C546, double 0x3CAA0ECCDCA4A72C, double 0x3CAA62676D77CD59, double 0x3CAAB4AD6E101630, double 0x3CAB05B16D136C9C, double 0x3CAB558487427A29, double 0x3CABA4368E529F3A, double 0x3CABF1D62ABF8232, double 0x3CAC3E70F9594EF3, double 0x3CAC8A13A5323B61, double 0x3CACD4C9FE72268B, double 0x3CAD1E9F0E80B748, double 0x3CAD679D29E41F10, double 0x3CADAFCE0023B8C3, double 0x3CADF73AA9F17653, double 0x3CAE3DEBB5D2EDFE, double 0x3CAE83E9337A6F00, double 0x3CAEC93ABDF982CE, double 0x3CAF0DE784F06226, double 0x3CAF51F654D8F688, double 0x3CAF956D9E87D7AE, double 0x3CAFD8537DFA2EAC, double 0x3CB00D56E04234EC, double 0x3CB02E40F5398F9A, double 0x3CB04EEA9E16A5FC, double 0x3CB06F565B72A010, double 0x3CB08F869071F40B, double 0x3CB0AF7D84BC6113, double 0x3CB0CF3D664BCC7F, double 0x3CB0EEC84B16086B, double 0x3CB10E20329515EE, double 0x3CB12D4707310FBE, double 0x3CB14C3E9F8E9141, double 0x3CB16B08BFC4201E, double 0x3CB189A71A78DA34, double 0x3CB1A81B51EE6D88, double 0x3CB1C666F8F82ACB, double 0x3CB1E48B93E0D42E, double 0x3CB2028A9940A09F, double 0x3CB2206572C4C6E9, double 0x3CB23E1D7DE9C31F, double 0x3CB25BB40CA96BFB, double 0x3CB2792A661DD37F, double 0x3CB29681C719D71B, double 0x3CB2B3BB62B82EDA, double 0x3CB2D0D862E1B853, double 0x3CB2EDD9E8CBA98E, double 0x3CB30AC10D6E48D7, double 0x3CB3278EE1F4B930, double 0x3CB3444470265EA1, double 0x3CB360E2BACA52D5, double 0x3CB37D6ABE05586A, double 0x3CB399DD6FB2B264, double 0x3CB3B63BBFB83D03, double 0x3CB3D28698561DE0, double 0x3CB3EEBEDE725A83, double 0x3CB40AE571E09E74, double 0x3CB426FB2DA6745D, double 0x3CB44300E83C30A4, double 0x3CB45EF773CAC75D, double 0x3CB47ADF9E66C336, double 0x3CB496BA32488F2F, double 0x3CB4B287F602415D, double 0x3CB4CE49ACB311DC, double 0x3CB4EA001638A605, double 0x3CB505ABEF5E5562, double 0x3CB5214DF20A8B5A, double 0x3CB53CE6D56A664F, double 0x3CB558774E1BB2C8, double 0x3CB574000E555F78, double 0x3CB58F81C60E8514, double 0x3CB5AAFD23241B59, double 0x3CB5C672D17D733D, double 0x3CB5E1E37B2F8CD3, double 0x3CB5FD4FC89F5E38, double 0x3CB618B860A31FC3, double 0x3CB6341DE8A2B0A2, double 0x3CB64F8104B7260B, double 0x3CB66AE257C99672, double 0x3CB6864283B13137, double 0x3CB6A1A22950B2B1, double 0x3CB6BD01E8B343BB, double 0x3CB6D8626128D352, double 0x3CB6F3C43161F854, double 0x3CB70F27F78B68EB, double 0x3CB72A8E516914C6, double 0x3CB745F7DC70EEDC, double 0x3CB7616535E5731F, double 0x3CB77CD6FAEFF449, double 0x3CB7984DC8BABD93, double 0x3CB7B3CA3C8B1409, double 0x3CB7CF4CF3DB22FB, double 0x3CB7EAD68C73DEE7, double 0x3CB80667A486EA1F, double 0x3CB82200DAC88676, double 0x3CB83DA2CE899F15, double 0x3CB8594E1FD1F5BD, double 0x3CB875036F7A7EC5, double 0x3CB890C35F47F72D, double 0x3CB8AC8E9205C043, double 0x3CB8C865ABA10C9C, double 0x3CB8E44951446A27, double 0x3CB9003A2973B58F, double 0x3CB91C38DC288347, double 0x3CB9384612EF0AFC, double 0x3CB954627903A28A, double 0x3CB9708EBB70D5EE, double 0x3CB98CCB892E2A31, double 0x3CB9A919933F99BF, double 0x3CB9C5798CD5D92C, double 0x3CB9E1EC2B6F7411, double 0x3CB9FE7226FAD24A, double 0x3CBA1B0C39F93692, double 0x3CBA37BB21A2C85B, double 0x3CBA547F9E0BBB88, double 0x3CBA715A724AA9A4, double 0x3CBA8E4C64A0313D, double 0x3CBAAB563E9FF108, double 0x3CBAC878CD5AF5CE, double 0x3CBAE
%p = getelementptr inbounds [256 x double], ptr @data, i64 0, i64 %idx
%x = load double, ptr %p, align 8
ret double %x
@pure
@llvm
def fi_double(idx: int) -> float:
@data = private unnamed_addr constant [256 x double] [double 1.000000e+00, double 0x3FEF446AC979F087, double 0x3FEEB7545B6CA915, double 0x3FEE3F11E027F077, double 0x3FEDD36FA704DE95, double 0x3FED70920657BCF2, double 0x3FED144978A119DC, double 0x3FECBD33A8A72DEB, double 0x3FEC6A5ECEA9787F, double 0x3FEC1B1CD9EEBAEA, double 0x3FEBCEEB4EE1DC82, double 0x3FEB85653A8FF552, double 0x3FEB3E3A8234DD10, double 0x3FEAF92A3F6CE8A2, double 0x3FEAB5FEF17A2504, double 0x3FEA748BD550C9E1, double 0x3FEA34AAFDF5AF0F, double 0x3FE9F63BEE651FD8, double 0x3FE9B9228D240681, double 0x3FE97D4657617AC1, double 0x3FE94291C21B7A47, double 0x3FE908F1BD31714F, double 0x3FE8D0554FE60AA8, double 0x3FE898AD48BADF02, double 0x3FE861EBFC37BCAC, double 0x3FE82C050F56CF6E, double 0x3FE7F6ED4B20E2CB, double 0x3FE7C29A779C6858, double 0x3FE78F033CA0B0D5, double 0x3FE75C1F0770D856, double 0x3FE729E5F43F6D12, double 0x3FE6F850BAEA7AEE, double 0x3FE6C7589E635A89, double 0x3FE696F75E513B2A, double 0x3FE667272A92E323, double 0x3FE637E298550C18, double 0x3FE6092498802665, double 0x3FE5DAE86F4AFF6A, double 0x3FE5AD29ACC85C89, double 0x3FE57FE4264C8D8F, double 0x3FE55313F08D9E46, double 0x3FE526B55A656CD5, double 0x3FE4FAC4E820B667, double 0x3FE4CF3F4F494EC0, double 0x3FE4A42172DC5278, double 0x3FE479685FDF5012, double 0x3FE44F114A493679, double 0x3FE425198A355FE3, double 0x3FE3FB7E99585B82, double 0x3FE3D23E10AF31A3, double 0x3FE3A955A662CD0E, double 0x3FE380C32BDA00D5, double 0x3FE358848BF550E9, double 0x3FE33097C9703A35, double 0x3FE308FAFD6438EF, double 0x3FE2E1AC55EA3BEE, double 0x3FE2BAAA14D7954A, double 0x3FE293F28E93CD15, double 0x3FE26D84290504ED, double 0x3FE2475D5A90DB84, double 0x3FE2217CA92FF7F2, double 0x3FE1FBE0A9929620, double 0x3FE1D687FE549969, double 0x3FE1B171573FD111, double 0x3FE18C9B709B3C50, double 0x3FE16805128639DA, double 0x3FE143AD105EA99C, double 0x3FE11F9248311F38, double 0x3FE0FBB3A2325913, double 0x3FE0D810104142A0, double 0x3FE0B4A68D70D9AE, double 0x3FE091761D995D81, double 0x3FE06E7DCCF03C36, double 0x3FE04BBCAFA63F2E, double 0x3FE02931E18B822A, double 0x3FE006DC85B8CAC4, double 0x3FDFC9778C7BBDA1, double 0x3FDF859DA7A900CA, double 0x3FDF4229CB2F7AF3, double 0x3FDEFF1A717E8F95, double 0x3FDEBC6E20BD1F54, double 0x3FDE7A236A4EC3C5, double 0x3FDE3838EA5F9B85, double 0x3FDDF6AD47763A09, double 0x3FDDB57F320B56B1, double 0x3FDD74AD6426DE33, double 0x3FDD3436A1021080, double 0x3FDCF419B4AE5B6D, double 0x3FDCB45573C0A848, double 0x3FDC74E8BB00D7C7, double 0x3FDC35D26F1D2CB8, double 0x3FDBF7117C616A17, double 0x3FDBB8A4D6716D91, double 0x3FDB7A8B7807131B, double 0x3FDB3CC462B331CA, double 0x3FDAFF4E9EA18552, double 0x3FDAC2293A5F5A9E, double 0x3FDA85534AA4D880, double 0x3FDA48CBEA20C04D, double 0x3FDA0C923946843E, double 0x3FD9D0A55E1E93DF, double 0x3FD995048418C0C6, double 0x3FD959AEDBE09F93, double 0x3FD91EA39B33CB17, double 0x3FD8E3E1FCB9F115, double 0x3FD8A9693FDE9188, double 0x3FD86F38A8AC5AB6, double 0x3FD8354F7FAA0DD9, double 0x3FD7FBAD11B8D911, double 0x3FD7C250AFF414B0, double 0x3FD78939AF9252EB, double 0x3FD7506769C7B1ED, double 0x3FD717D93BA9614C, double 0x3FD6DF8E86124CAA, double 0x3FD6A786AD88DE21, double 0x3FD66FC11A25CBE2, double 0x3FD6383D377BE515, double 0x3FD600FA7480D2C8, double 0x3FD5C9F84376C244, double 0x3FD5933619D6EEBE, double 0x3FD55CB3703D0100, double 0x3FD5266FC2533BED, double 0x3FD4F06A8EBF6D92, double 0x3FD4BAA357109CA2, double 0x3FD485199FAD6AD4, double 0x3FD44FCCEFC324FE, double 0x3FD41ABCD1357A19, double 0x3FD3E5E8D08ED2DB, double 0x3FD3B1507CF143AE, double 0x3FD37CF368081379, double 0x3FD348D125F9D19E, double 0x3FD314E94D5AF62F, double 0x3FD2E13B77210766, double 0x3FD2ADC73E963FDD, double 0x3FD27A8C414DB11E, double 0x3FD2478A1F17DE89, double 0x3FD214C079F7CC9E, double 0x3FD1E22EF6188116, double 0x3FD1AFD539C2F050, double 0x3FD17DB2ED5454E8, double 0x3FD14BC7BB34EE67, double 0x3FD11A134FCF2423, double 0x3FD0E895598709C4, double 0x3FD0B74D88B242DA, double 0x3FD0863B8F904336, double 0x3FD0555F2242E9D9, double 0x3FD024B7F6C7747E, double 0x3FCFE88B89DF93C5, double 0x3FCF88108CB83235, double 0x3FCF27FE6CE
%p = getelementptr inbounds [256 x double], ptr @data, i64 0, i64 %idx
%x = load double, ptr %p, align 8
ret double %x
@pure
@llvm
def ki_float(idx: int) -> u32:
@data = private unnamed_addr constant [256 x i32] [i32 7838188, i32 0, i32 6309365, i32 7150248, i32 7507892, i32 7705263, i32 7830108, i32 7916088, i32 7978859, i32 8026677, i32 8064303, i32 8094676, i32 8119703, i32 8140680, i32 8158515, i32 8173862, i32 8187208, i32 8198920, i32 8209279, i32 8218507, i32 8226779, i32 8234236, i32 8240993, i32 8247143, i32 8252765, i32 8257923, i32 8262673, i32 8267060, i32 8271125, i32 8274901, i32 8278419, i32 8281703, i32 8284777, i32 8287658, i32 8290366, i32 8292914, i32 8295317, i32 8297586, i32 8299733, i32 8301766, i32 8303694, i32 8305525, i32 8307267, i32 8308924, i32 8310504, i32 8312012, i32 8313451, i32 8314827, i32 8316143, i32 8317404, i32 8318612, i32 8319771, i32 8320884, i32 8321952, i32 8322979, i32 8323967, i32 8324918, i32 8325834, i32 8326716, i32 8327567, i32 8328388, i32 8329180, i32 8329946, i32 8330685, i32 8331399, i32 8332090, i32 8332759, i32 8333405, i32 8334032, i32 8334638, i32 8335226, i32 8335795, i32 8336348, i32 8336883, i32 8337403, i32 8337907, i32 8338396, i32 8338871, i32 8339332, i32 8339781, i32 8340216, i32 8340639, i32 8341050, i32 8341450, i32 8341838, i32 8342216, i32 8342584, i32 8342941, i32 8343289, i32 8343628, i32 8343957, i32 8344277, i32 8344589, i32 8344893, i32 8345188, i32 8345476, i32 8345756, i32 8346028, i32 8346293, i32 8346552, i32 8346803, i32 8347048, i32 8347286, i32 8347518, i32 8347743, i32 8347963, i32 8348176, i32 8348384, i32 8348586, i32 8348783, i32 8348974, i32 8349160, i32 8349340, i32 8349516, i32 8349686, i32 8349852, i32 8350012, i32 8350169, i32 8350320, i32 8350467, i32 8350609, i32 8350747, i32 8350880, i32 8351009, i32 8351134, i32 8351255, i32 8351372, i32 8351484, i32 8351592, i32 8351697, i32 8351797, i32 8351894, i32 8351987, i32 8352076, i32 8352161, i32 8352242, i32 8352319, i32 8352393, i32 8352463, i32 8352530, i32 8352592, i32 8352651, i32 8352707, i32 8352758, i32 8352807, i32 8352851, i32 8352892, i32 8352929, i32 8352963, i32 8352992, i32 8353019, i32 8353041, i32 8353060, i32 8353075, i32 8353087, i32 8353094, i32 8353098, i32 8353099, i32 8353095, i32 8353087, i32 8353076, i32 8353060, i32 8353041, i32 8353017, i32 8352990, i32 8352958, i32 8352922, i32 8352882, i32 8352837, i32 8352788, i32 8352735, i32 8352677, i32 8352614, i32 8352547, i32 8352474, i32 8352397, i32 8352314, i32 8352227, i32 8352134, i32 8352035, i32 8351931, i32 8351821, i32 8351705, i32 8351583, i32 8351455, i32 8351320, i32 8351179, i32 8351031, i32 8350876, i32 8350713, i32 8350543, i32 8350364, i32 8350178, i32 8349983, i32 8349780, i32 8349567, i32 8349345, i32 8349112, i32 8348870, i32 8348616, i32 8348352, i32 8348075, i32 8347786, i32 8347485, i32 8347169, i32 8346840, i32 8346495, i32 8346135, i32 8345758, i32 8345363, i32 8344949, i32 8344516, i32 8344062, i32 8343586, i32 8343087, i32 8342562, i32 8342010, i32 8341430, i32 8340819, i32 8340175, i32 8339496, i32 8338778, i32 8338020, i32 8337217, i32 8336365, i32 8335461, i32 8334500, i32 8333476, i32 8332383, i32 8331214, i32 8329962, i32 8328617, i32 8327168, i32 8325604, i32 8323910, i32 8322070, i32 8320062, i32 8317864, i32 8315447, i32 8312776, i32 8309807, i32 8306487, i32 8302749, i32 8298506, i32 8293645, i32 8288016, i32 8281415, i32 8273555, i32 8264025, i32 8252204, i32 8237110, i32 8217091, i32 8189113, i32 8146898, i32 8074800, i32 7918290], align 16
%p = getelementptr inbounds [256 x i32], ptr @data, i64 0, i64 %idx
%x = load i32, ptr %p, align 8
ret i32 %x
@pure
@llvm
def wi_float(idx: int) -> float32:
@data = private unnamed_addr constant [256 x float] [float 0x3E9F493B80000000, float 0x3E5B8D0BE0000000, float 0x3E6250AF40000000, float 0x3E657CB940000000, float 0x3E6801FCE0000000, float 0x3E6A230C20000000, float 0x3E6C004D20000000, float 0x3E6DAC2F60000000, float 0x3E6F324820000000, float 0x3E704D3220000000, float 0x3E70F50540000000, float 0x3E7192A6A0000000, float 0x3E7227A280000000, float 0x3E72B52E40000000, float 0x3E733C3FC0000000, float 0x3E73BD9EC0000000, float 0x3E7439EF80000000, float 0x3E74B1BB40000000, float 0x3E75257560000000, float 0x3E759580A0000000, float 0x3E760231C0000000, float 0x3E766BD260000000, float 0x3E76D2A2A0000000, float 0x3E7736DAE0000000, float 0x3E7798AD20000000, float 0x3E77F845A0000000, float 0x3E7855CC60000000, float 0x3E78B164A0000000, float 0x3E790B2EA0000000, float 0x3E79634780000000, float 0x3E79B9C980000000, float 0x3E7A0ECCE0000000, float 0x3E7A626760000000, float 0x3E7AB4AD60000000, float 0x3E7B05B160000000, float 0x3E7B558480000000, float 0x3E7BA43680000000, float 0x3E7BF1D620000000, float 0x3E7C3E7100000000, float 0x3E7C8A13A0000000, float 0x3E7CD4CA00000000, float 0x3E7D1E9F00000000, float 0x3E7D679D20000000, float 0x3E7DAFCE00000000, float 0x3E7DF73AA0000000, float 0x3E7E3DEBC0000000, float 0x3E7E83E940000000, float 0x3E7EC93AC0000000, float 0x3E7F0DE780000000, float 0x3E7F51F660000000, float 0x3E7F956DA0000000, float 0x3E7FD85380000000, float 0x3E800D56E0000000, float 0x3E802E4100000000, float 0x3E804EEAA0000000, float 0x3E806F5660000000, float 0x3E808F86A0000000, float 0x3E80AF7D80000000, float 0x3E80CF3D60000000, float 0x3E80EEC840000000, float 0x3E810E2040000000, float 0x3E812D4700000000, float 0x3E814C3EA0000000, float 0x3E816B08C0000000, float 0x3E8189A720000000, float 0x3E81A81B60000000, float 0x3E81C66700000000, float 0x3E81E48BA0000000, float 0x3E82028AA0000000, float 0x3E82206580000000, float 0x3E823E1D80000000, float 0x3E825BB400000000, float 0x3E82792A60000000, float 0x3E829681C0000000, float 0x3E82B3BB60000000, float 0x3E82D0D860000000, float 0x3E82EDD9E0000000, float 0x3E830AC100000000, float 0x3E83278EE0000000, float 0x3E83444480000000, float 0x3E8360E2C0000000, float 0x3E837D6AC0000000, float 0x3E8399DD60000000, float 0x3E83B63BC0000000, float 0x3E83D286A0000000, float 0x3E83EEBEE0000000, float 0x3E840AE580000000, float 0x3E8426FB20000000, float 0x3E844300E0000000, float 0x3E845EF780000000, float 0x3E847ADFA0000000, float 0x3E8496BA40000000, float 0x3E84B28800000000, float 0x3E84CE49A0000000, float 0x3E84EA0020000000, float 0x3E8505ABE0000000, float 0x3E85214E00000000, float 0x3E853CE6E0000000, float 0x3E85587740000000, float 0x3E85740000000000, float 0x3E858F81C0000000, float 0x3E85AAFD20000000, float 0x3E85C672E0000000, float 0x3E85E1E380000000, float 0x3E85FD4FC0000000, float 0x3E8618B860000000, float 0x3E86341DE0000000, float 0x3E864F8100000000, float 0x3E866AE260000000, float 0x3E86864280000000, float 0x3E86A1A220000000, float 0x3E86BD01E0000000, float 0x3E86D86260000000, float 0x3E86F3C440000000, float 0x3E870F2800000000, float 0x3E872A8E60000000, float 0x3E8745F7E0000000, float 0x3E87616540000000, float 0x3E877CD700000000, float 0x3E87984DC0000000, float 0x3E87B3CA40000000, float 0x3E87CF4D00000000, float 0x3E87EAD680000000, float 0x3E880667A0000000, float 0x3E882200E0000000, float 0x3E883DA2C0000000, float 0x3E88594E20000000, float 0x3E88750360000000, float 0x3E8890C360000000, float 0x3E88AC8EA0000000, float 0x3E88C865A0000000, float 0x3E88E44960000000, float 0x3E89003A20000000, float 0x3E891C38E0000000, float 0x3E89384620000000, float 0x3E89546280000000, float 0x3E89708EC0000000, float 0x3E898CCB80000000, float 0x3E89A919A0000000, float 0x3E89C57980000000, float 0x3E89E1EC20000000, float 0x3E89FE7220000000, float 0x3E8A1B0C40000000, float 0x3E8A37BB20000000, float 0x3E8A547FA0000000, float 0x3E8A715A80000000, float 0x3E8A8E4C60000000, float 0x3E8AAB5640000000, float 0x3E8AC878C0000000, float 0x3E8AE5B4E0000000, float 0x3E8B030B40000000, float 0x3E8B207D00000000, float 0x3E8B3E0AA0000000, float 0x3E8B5BB540000000, float 0x3E8B797DC0000000, float 0x
%p = getelementptr inbounds [256 x float], ptr @data, i64 0, i64 %idx
%x = load float, ptr %p, align 8
ret float %x
@pure
@llvm
def fi_float(idx: int) -> float32:
@data = private unnamed_addr constant [256 x float] [float 1.000000e+00, float 0x3FEF446AC0000000, float 0x3FEEB75460000000, float 0x3FEE3F11E0000000, float 0x3FEDD36FA0000000, float 0x3FED709200000000, float 0x3FED144980000000, float 0x3FECBD33A0000000, float 0x3FEC6A5EC0000000, float 0x3FEC1B1CE0000000, float 0x3FEBCEEB40000000, float 0x3FEB856540000000, float 0x3FEB3E3A80000000, float 0x3FEAF92A40000000, float 0x3FEAB5FF00000000, float 0x3FEA748BE0000000, float 0x3FEA34AB00000000, float 0x3FE9F63BE0000000, float 0x3FE9B92280000000, float 0x3FE97D4660000000, float 0x3FE94291C0000000, float 0x3FE908F1C0000000, float 0x3FE8D05540000000, float 0x3FE898AD40000000, float 0x3FE861EC00000000, float 0x3FE82C0500000000, float 0x3FE7F6ED40000000, float 0x3FE7C29A80000000, float 0x3FE78F0340000000, float 0x3FE75C1F00000000, float 0x3FE729E600000000, float 0x3FE6F850C0000000, float 0x3FE6C758A0000000, float 0x3FE696F760000000, float 0x3FE6672720000000, float 0x3FE637E2A0000000, float 0x3FE60924A0000000, float 0x3FE5DAE860000000, float 0x3FE5AD29A0000000, float 0x3FE57FE420000000, float 0x3FE5531400000000, float 0x3FE526B560000000, float 0x3FE4FAC4E0000000, float 0x3FE4CF3F40000000, float 0x3FE4A42180000000, float 0x3FE4796860000000, float 0x3FE44F1140000000, float 0x3FE4251980000000, float 0x3FE3FB7EA0000000, float 0x3FE3D23E20000000, float 0x3FE3A955A0000000, float 0x3FE380C320000000, float 0x3FE3588480000000, float 0x3FE33097C0000000, float 0x3FE308FB00000000, float 0x3FE2E1AC60000000, float 0x3FE2BAAA20000000, float 0x3FE293F280000000, float 0x3FE26D8420000000, float 0x3FE2475D60000000, float 0x3FE2217CA0000000, float 0x3FE1FBE0A0000000, float 0x3FE1D68800000000, float 0x3FE1B17160000000, float 0x3FE18C9B80000000, float 0x3FE1680520000000, float 0x3FE143AD20000000, float 0x3FE11F9240000000, float 0x3FE0FBB3A0000000, float 0x3FE0D81020000000, float 0x3FE0B4A680000000, float 0x3FE0917620000000, float 0x3FE06E7DC0000000, float 0x3FE04BBCA0000000, float 0x3FE02931E0000000, float 0x3FE006DC80000000, float 0x3FDFC97780000000, float 0x3FDF859DA0000000, float 0x3FDF4229C0000000, float 0x3FDEFF1A80000000, float 0x3FDEBC6E20000000, float 0x3FDE7A2360000000, float 0x3FDE3838E0000000, float 0x3FDDF6AD40000000, float 0x3FDDB57F40000000, float 0x3FDD74AD60000000, float 0x3FDD3436A0000000, float 0x3FDCF419C0000000, float 0x3FDCB45580000000, float 0x3FDC74E8C0000000, float 0x3FDC35D260000000, float 0x3FDBF71180000000, float 0x3FDBB8A4E0000000, float 0x3FDB7A8B80000000, float 0x3FDB3CC460000000, float 0x3FDAFF4EA0000000, float 0x3FDAC22940000000, float 0x3FDA855340000000, float 0x3FDA48CBE0000000, float 0x3FDA0C9240000000, float 0x3FD9D0A560000000, float 0x3FD9950480000000, float 0x3FD959AEE0000000, float 0x3FD91EA3A0000000, float 0x3FD8E3E200000000, float 0x3FD8A96940000000, float 0x3FD86F38A0000000, float 0x3FD8354F80000000, float 0x3FD7FBAD20000000, float 0x3FD7C250A0000000, float 0x3FD78939A0000000, float 0x3FD7506760000000, float 0x3FD717D940000000, float 0x3FD6DF8E80000000, float 0x3FD6A786A0000000, float 0x3FD66FC120000000, float 0x3FD6383D40000000, float 0x3FD600FA80000000, float 0x3FD5C9F840000000, float 0x3FD5933620000000, float 0x3FD55CB380000000, float 0x3FD5266FC0000000, float 0x3FD4F06A80000000, float 0x3FD4BAA360000000, float 0x3FD48519A0000000, float 0x3FD44FCCE0000000, float 0x3FD41ABCE0000000, float 0x3FD3E5E8E0000000, float 0x3FD3B15080000000, float 0x3FD37CF360000000, float 0x3FD348D120000000, float 0x3FD314E940000000, float 0x3FD2E13B80000000, float 0x3FD2ADC740000000, float 0x3FD27A8C40000000, float 0x3FD2478A20000000, float 0x3FD214C080000000, float 0x3FD1E22F00000000, float 0x3FD1AFD540000000, float 0x3FD17DB2E0000000, float 0x3FD14BC7C0000000, float 0x3FD11A1340000000, float 0x3FD0E89560000000, float 0x3FD0B74D80000000, float 0x3FD0863B80000000, float 0x3FD0555F20000000, float 0x3FD024B800000000, float 0x3FCFE88B80000000, float 0x3FCF881080000000, float 0x3FCF27FE60000000, float 0x3FCEC854A0000000, float 0x3FCE6912C0000000, float 0x3FCE0A3820000000, float 0x3FCDABC460000000, float 0x3FCD4DB700000000, float 0x3FCCF0
%p = getelementptr inbounds [256 x float], ptr @data, i64 0, i64 %idx
%x = load float, ptr %p, align 8
ret float %x
@pure
@llvm
def ke_double(idx: int) -> u64:
@data = private unnamed_addr constant [256 x i64] [i64 7971545857431494, i64 0, i64 5485857970336126, i64 6877400373607440, i64 7489560515621038, i64 7829793950745724, i64 8045251395085594, i64 8193552821270898, i64 8301707212298418, i64 8384003209374832, i64 8448689755168200, i64 8500854585063478, i64 8543802742323106, i64 8579772857648236, i64 8610334328270398, i64 8636619566280862, i64 8659465946817878, i64 8679505875409358, i64 8697225801520776, i64 8713005977443536, i64 8727147906454692, i64 8739893704890038, i64 8751440024696698, i64 8761948238062960, i64 8771552003860596, i64 8780362968290610, i64 8788475114930438, i64 8795968123070796, i64 8802909988292858, i64 8809359087581710, i64 8815365821575970, i64 8820973931588800, i64 8826221564107158, i64 8831142137483404, i64 8835765052397426, i64 8840116277974648, i64 8844218838221542, i64 8848093218006260, i64 8851757703688506, i64 8855228670347734, i64 8858520825126080, i64 8861647414312948, i64 8864620400320394, i64 8867450613535032, i64 8870147883110754, i64 8872721150032146, i64 8875178565190242, i64 8877527574738170, i64 8879774994610604, i64 8881927075778634, i64 8883989561556502, i64 8885967738067168, i64 8887866478800856, i64 8889690284057818, i64 8891443315947666, i64 8893129429518482, i64 8894752200505984, i64 8896314950123264, i64 8897820767252858, i64 8899272528353282, i64 8900672915349966, i64 8902024431744704, i64 8903329417147192, i64 8904590060406012, i64 8905808411494018, i64 8906986392283810, i64 8908125806332284, i64 8909228347778946, i64 8910295609450180, i64 8911329090250868, i64 8912330201915374, i64 8913300275181656, i64 8914240565445170, i64 8915152257942916, i64 8916036472512488, i64 8916894267966144, i64 8917726646115692, i64 8918534555480190, i64 8919318894705170, i64 8920080515719156, i64 8920820226650618, i64 8921538794526266, i64 8922236947769418, i64 8922915378515480, i64 8923574744759820, i64 8924215672351958, i64 8924838756848636, i64 8925444565237162, i64 8926033637539416, i64 8926606488305930, i64 8927163608008600, i64 8927705464339880, i64 8928232503425544, i64 8928745150957558, i64 8929243813252980, i64 8929728878244356, i64 8930200716406566, i64 8930659681624710, i64 8931106112007190, i64 8931540330647876, i64 8931962646340834, i64 8932373354250910, i64 8932772736543124, i64 8933161062973652, i64 8933538591444894, i64 8933905568527004, i64 8934262229948010, i64 8934608801054528, i64 8934945497244894, i64 8935272524376414, i64 8935590079148328, i64 8935898349461876, i64 8936197514758882, i64 8936487746340036, i64 8936769207664048, i64 8937042054628744, i64 8937306435835058, i64 8937562492834854, i64 8937810360363402, i64 8938050166557284, i64 8938282033158466, i64 8938506075705162, i64 8938722403710132, i64 8938931120826946, i64 8939132325004766, i64 8939326108632062, i64 8939512558669762, i64 8939691756774158, i64 8939863779409990, i64 8940028697953972, i64 8940186578789100, i64 8940337483389966, i64 8940481468399302, i64 8940618585695992, i64 8940748882454662, i64 8940872401197050, i64 8940989179835208, i64 8941099251706688, i64 8941202645601704, i64 8941299385782368, i64 8941389491993960, i64 8941472979468230, i64 8941549858918698, i64 8941620136527848, i64 8941683813926148, i64 8941740888162738, i64 8941791351667640, i64 8941835192205302, i64 8941872392819226, i64 8941902931767472, i64 8941926782448690, i64 8941943913318396, i64 8941954287795084, i64 8941957864155806, i64 8941954595420724, i64 8941944429226144, i64 8941927307685492, i64 8941903167237602, i64 8941871938481652, i64 8941833545998016, i64 8941787908154234, i64 8941734936895206, i64 8941674537516674, i64 8941606608420918, i64 8941531040853536, i64 8941447718620056, i64 8941356517781006, i64 8941257306323958, i64 8941149943810914, i64 8941034280999228, i64 8940910159434164, i64 8940777411010892, i64 8940635857503634, i64 8940485310059376, i64 8940325568653336, i64 8940156421503112, i64 8939977644438114, i64 8939789000220574, i64 8939590237814000, i64 8939381091594596, i64 8939161280500638, i64 8938930507114326, i64 8938688456670012, i64 8938434795982096, i64 893
%p = getelementptr inbounds [256 x i64], ptr @data, i64 0, i64 %idx
%x = load i64, ptr %p, align 8
ret i64 %x
@pure
@llvm
def we_double(idx: int) -> float:
@data = private unnamed_addr constant [256 x double] [double 0x3CD164EC94BF5DC1, double 0x3C60589D8B5D4119, double 0x3C6AD6B2495B4D2B, double 0x3C719335A95B8DBA, double 0x3C7522E6E54A2A73, double 0x3C785090FBC27A80, double 0x3C7B38D1EF79B7CC, double 0x3C7DECD8B76DBD98, double 0x3C803BF049C65C3C, double 0x3C8170DB24D6F670, double 0x3C82980290DA2633, double 0x3C83B388FE3D6ECA, double 0x3C84C515C60BFE21, double 0x3C85CDF89D024AC3, double 0x3C86CF40F0A72BBD, double 0x3C87C9CDDA17D019, double 0x3C88BE5954D3606F, double 0x3C89AD80552237D2, double 0x3C8A97C8BE5D5203, double 0x3C8B7DA5DDDDA3C4, double 0x3C8C5F7BD78C3F89, double 0x3C8D3DA24DF17C36, double 0x3C8E186678F1735A, double 0x3C8EF00CCF5F4FAA, double 0x3C8FC4D25D683209, double 0x3C904B76ED6A7558, double 0x3C90B348479B80FC, double 0x3C9119F38749F5AF, double 0x3C917F8CEB4BDFA0, double 0x3C91E426E93E49E7, double 0x3C9247D26538FF2E, double 0x3C92AA9EE123680B, double 0x3C930C9AA526DA4B, double 0x3C936DD2E26D8202, double 0x3C93CE53D12162A0, double 0x3C942E28CA706748, double 0x3C948D5C5F35E712, double 0x3C94EBF86BCD0B93, double 0x3C954A0629786F4D, double 0x3C95A78E3DB8BEFD, double 0x3C960498C7DD2ECF, double 0x3C96612D6D0C68E0, double 0x3C96BD5362FAA944, double 0x3C971911797990BB, double 0x3C97746E23077973, double 0x3C97CF6F7C7E8172, double 0x3C982A1B53FED599, double 0x3C9884772F2BE1EC, double 0x3C98DE8850D0C52A, double 0x3C993853BDFDA244, double 0x3C9991DE42AD1338, double 0x3C99EB2C75FF03BF, double 0x3C9A4442BE14884A, double 0x3C9A9D255396D261, double 0x3C9AF5D844F224C9, double 0x3C9B4E5F794C979B, double 0x3C9BA6BEB33F8F89, double 0x3C9BFEF99359FE99, double 0x3C9C57139A70D29F, double 0x3C9CAF102BC25ADB, double 0x3C9D06F28EF0E6FB, double 0x3C9D5EBDF1D86B8D, double 0x3C9DB6756A429057, double 0x3C9E0E1BF77C31FE, double 0x3C9E65B483CF1044, double 0x3C9EBD41E5E21B62, double 0x3C9F14C6E202949F, double 0x3C9F6C462B57FEB5, double 0x3C9FC3C26504A9A1, double 0x3CA00D9F119A3CD9, double 0x3CA0395DF60DB162, double 0x3CA0651F1C7276F8, double 0x3CA090E3BB4B0072, double 0x3CA0BCAD03710137, double 0x3CA0E87C207A2F66, double 0x3CA114523917AC15, double 0x3CA140306F707DBE, double 0x3CA16C17E1777FFB, double 0x3CA19809A93D2396, double 0x3CA1C406DD3D5283, double 0x3CA1F01090A9C4E2, double 0x3CA21C27D3B10E05, double 0x3CA2484DB3C2A329, double 0x3CA274833BD0189F, double 0x3CA2A0C9748BCDAA, double 0x3CA2CD2164A53B5D, double 0x3CA2F98C11031721, double 0x3CA3260A7CFB7611, double 0x3CA3529DAA8A1BA1, double 0x3CA37F469A851AF0, double 0x3CA3AC064CCFEFFC, double 0x3CA3D8DDC08D336D, double 0x3CA405CDF44F09C4, double 0x3CA432D7E6466CD0, double 0x3CA45FFC94716CA7, double 0x3CA48D3CFCC883C4, double 0x3CA4BA9A1D6B18A4, double 0x3CA4E814F4CB45EA, double 0x3CA515AE81D900FB, double 0x3CA54367C42CB5F8, double 0x3CA57141BC316F27, double 0x3CA59F3D6B4E9CF9, double 0x3CA5CD5BD4119335, double 0x3CA5FB9DFA56CF26, double 0x3CA62A04E3731A2E, double 0x3CA65891965C9B8C, double 0x3CA687451BD3EBEE, double 0x3CA6B6207E8D3CDF, double 0x3CA6E524CB59A608, double 0x3CA714531150A9FB, double 0x3CA743AC61FA041C, double 0x3CA77331D177D130, double 0x3CA7A2E476B1240A, double 0x3CA7D2C56B7D17F7, double 0x3CA802D5CCCE7277, double 0x3CA83316BADFE62A, double 0x3CA86389596108E7, double 0x3CA8942ECFA40F54, double 0x3CA8C50848CC6094, double 0x3CA8F616F3FE1513, double 0x3CA9275C048E73E1, double 0x3CA958D8B235828A, double 0x3CA98A8E3940BBF4, double 0x3CA9BC7DDAC7035D, double 0x3CA9EEA8DCDDE951, double 0x3CAA21108AD0592D, double 0x3CAA53B63556C690, double 0x3CAA869B32D0F30F, double 0x3CAAB9C0DF81657A, double 0x3CAAED289DCAACFF, double 0x3CAB20D3D66E8BB5, double 0x3CAB54C3F8CF2542, double 0x3CAB88FA7B324FB6, double 0x3CABBD78DB072610, double 0x3CABF2409D2DFD85, double 0x3CAC27534E42E02D, double 0x3CAC5CB282EAB1A4, double 0x3CAC925FD82323FB, double 0x3CACC85CF395A56C, double 0x3CACFEAB83ED7180, double 0x3CAD354D4130F2AD, double 0x3CAD6C43ED1EA3FE, double 0x3CADA391538DA50A, double 0x3CADDB374AD2357F, double 0x3CAE1337B426509B, double 0x3CAE4B947C16A452, double 0x3CAE844F9AF4237F, double 0x3CAEBD6B154A7678, double 0x3CAEF6E8FC5B9168, double 0x3CAF3
%p = getelementptr inbounds [256 x double], ptr @data, i64 0, i64 %idx
%x = load double, ptr %p, align 8
ret double %x
@pure
@llvm
def fe_double(idx: int) -> float:
@data = private unnamed_addr constant [256 x double] [double 1.000000e+00, double 0x3FEE0545E5881137, double 0x3FECD0A65081FFF1, double 0x3FEBE5007BEB7B27, double 0x3FEB210F0EE67F2A, double 0x3FEA76BAA562FAE7, double 0x3FE9DE9715556D9B, double 0x3FE95431C455AA39, double 0x3FE8D4A376D3D22F, double 0x3FE85DE87806C5B8, double 0x3FE7EE8A2D243126, double 0x3FE7856E9B09D47E, double 0x3FE721BB5BA94B63, double 0x3FE6C2C3498418C6, double 0x3FE667FA6D4F5C06, double 0x3FE610EDC1A7AF66, double 0x3FE5BD3D694CAC75, double 0x3FE56C9882DA8773, double 0x3FE51EBA1578899A, double 0x3FE4D366C151F8AF, double 0x3FE48A6AFB8EE069, double 0x3FE44399AFA8E125, double 0x3FE3FECB2BB18B80, double 0x3FE3BBDC44E1D114, double 0x3FE37AADA708DDD9, double 0x3FE33B23450E6318, double 0x3FE2FD23E345DA5E, double 0x3FE2C098B61F4F24, double 0x3FE2856D111132BD, double 0x3FE24B8E228C50A3, double 0x3FE212EABA813EC8, double 0x3FE1DB7319877B89, double 0x3FE1A518C71E3B25, double 0x3FE16FCE6DCE6FEE, double 0x3FE13B87BC33169C, double 0x3FE108394A1CC38D, double 0x3FE0D5D8812B1E2B, double 0x3FE0A45B8854D02A, double 0x3FE073B931EE3B7D, double 0x3FE043E8EBD26548, double 0x3FE014E2B160F324, double 0x3FDFCD3DFE214576, double 0x3FDF722D8EBFC5FA, double 0x3FDF1886D1EB424D, double 0x3FDEC03D4B969D90, double 0x3FDE6945367DD351, double 0x3FDE139375E137FC, double 0x3FDDBF1D88A7210C, double 0x3FDD6BD97DB9ED7A, double 0x3FDD19BDE97E1A0B, double 0x3FDCC8C1DC40E092, double 0x3FDC78DCD983FB60, double 0x3FDC2A06D00EA583, double 0x3FDBDC3812AEEEB5, double 0x3FDB8F6951990B88, double 0x3FDB43939454806F, double 0x3FDAF8B03428EF5F, double 0x3FDAAEB8D6FDF6E5, double 0x3FDA65A76AA30140, double 0x3FDA1D76207521F4, double 0x3FD9D61F695A3792, double 0x3FD98F9DF2097BA8, double 0x3FD949EC9F9A8110, double 0x3FD905068C545D04, double 0x3FD8C0E704B75D39, double 0x3FD87D8984BC3F8C, double 0x3FD83AE9B5446138, double 0x3FD7F90369B6CE59, double 0x3FD7B7D29DC6801E, double 0x3FD77753735E72E3, double 0x3FD7378230B08DEA, double 0x3FD6F85B3E649E9D, double 0x3FD6B9DB25E4E99C, double 0x3FD67BFE8FC60D9F, double 0x3FD63EC2424827E4, double 0x3FD602231FEF5876, double 0x3FD5C61E2631EE6C, double 0x3FD58AB06C3AA9EF, double 0x3FD54FD721BDA3E7, double 0x3FD5158F8DDE89F5, double 0x3FD4DBD70E26F91D, double 0x3FD4A2AB158BDAD3, double 0x3FD46A092B80BEEF, double 0x3FD431EEEB1841E2, double 0x3FD3FA5A0230A14E, double 0x3FD3C34830ABB285, double 0x3FD38CB747B17DEF, double 0x3FD356A528FCD0DD, double 0x3FD3210FC6312435, double 0x3FD2EBF520394270, double 0x3FD2B75346AE2262, double 0x3FD2832857457629, double 0x3FD24F727D4776FD, double 0x3FD21C2FF10B7EFF, double 0x3FD1E95EF77B09DB, double 0x3FD1B6FDE19ABC5A, double 0x3FD1850B0C191982, double 0x3FD15384DEE291EF, double 0x3FD12269CCBA9FBA, double 0x3FD0F1B852D9A66C, double 0x3FD0C16EF88F5333, double 0x3FD0918C4EE93E13, double 0x3FD0620EF05D90D2, double 0x3FD032F580797C2C, double 0x3FD0043EAB93476A, double 0x3FCFABD24CFF9354, double 0x3FCF4FE75C963E7E, double 0x3FCEF4BA0FE8E09B, double 0x3FCE9A48005940F2, double 0x3FCE408ED62F83A7, double 0x3FCDE78C48224F39, double 0x3FCD8F3E1AE3EEB8, double 0x3FCD37A220B431FD, double 0x3FCCE0B638F6D09F, double 0x3FCC8A784FCE1802, double 0x3FCC34E65DB9AFEE, double 0x3FCBDFFE67394435, double 0x3FCB8BBE7C72E4A5, double 0x3FCB3824B8DCEF3E, double 0x3FCAE52F42EB5B0B, double 0x3FCA92DC4BC03C49, double 0x3FCA412A0EDF5CBC, double 0x3FC9F016D1E4C512, double 0x3FC99FA0E43E1623, double 0x3FC94FC69EE692A1, double 0x3FC900866425BB79, double 0x3FC8B1DE9F5062D5, double 0x3FC863CDC48C1AF9, double 0x3FC816525094E7E6, double 0x3FC7C96AC8851BAE, double 0x3FC77D15B99F46FE, double 0x3FC73151B91A2839, double 0x3FC6E61D63EE84EA, double 0x3FC69B775EA6DA28, double 0x3FC6515E5530D1AC, double 0x3FC607D0FAB06A31, double 0x3FC5BECE0954C2B6, double 0x3FC57654422E78F5, double 0x3FC52E626D078C49, double 0x3FC4E6F7583CB6FA, double 0x3FC4A011D8983096, double 0x3FC459B0C92DCCC6, double 0x3FC413D30B386A9A, double 0x3FC3CE7785F8A905, double 0x3FC3899D2694D5C9, double 0x3FC34542DFFA0CAF, double 0x3FC30167AABE7D6E, double 0x3FC2BE0A8504CF34, double 0x3FC27B2A72609940, double 0x3FC238C67BB
%p = getelementptr inbounds [256 x double], ptr @data, i64 0, i64 %idx
%x = load double, ptr %p, align 8
ret double %x
@pure
@llvm
def ke_float(idx: int) -> u32:
@data = private unnamed_addr constant [256 x i32] [i32 7424081, i32 0, i32 5109103, i32 6405078, i32 6975197, i32 7292064, i32 7492724, i32 7630841, i32 7731567, i32 7808211, i32 7868455, i32 7917038, i32 7957036, i32 7990536, i32 8018999, i32 8043479, i32 8064756, i32 8083420, i32 8099923, i32 8114619, i32 8127790, i32 8139660, i32 8150414, i32 8160200, i32 8169144, i32 8177350, i32 8184905, i32 8191884, i32 8198349, i32 8204355, i32 8209949, i32 8215172, i32 8220059, i32 8224642, i32 8228947, i32 8233000, i32 8236821, i32 8240429, i32 8243842, i32 8247074, i32 8250140, i32 8253052, i32 8255821, i32 8258457, i32 8260969, i32 8263366, i32 8265654, i32 8267842, i32 8269935, i32 8271939, i32 8273860, i32 8275702, i32 8277471, i32 8279169, i32 8280802, i32 8282372, i32 8283884, i32 8285339, i32 8286741, i32 8288093, i32 8289398, i32 8290656, i32 8291872, i32 8293046, i32 8294180, i32 8295277, i32 8296339, i32 8297365, i32 8298359, i32 8299322, i32 8300254, i32 8301158, i32 8302033, i32 8302883, i32 8303706, i32 8304505, i32 8305280, i32 8306033, i32 8306763, i32 8307472, i32 8308161, i32 8308830, i32 8309481, i32 8310113, i32 8310727, i32 8311324, i32 8311904, i32 8312468, i32 8313017, i32 8313550, i32 8314069, i32 8314574, i32 8315064, i32 8315542, i32 8316006, i32 8316458, i32 8316898, i32 8317325, i32 8317741, i32 8318145, i32 8318538, i32 8318921, i32 8319293, i32 8319655, i32 8320006, i32 8320348, i32 8320680, i32 8321003, i32 8321316, i32 8321621, i32 8321917, i32 8322204, i32 8322482, i32 8322753, i32 8323015, i32 8323269, i32 8323515, i32 8323754, i32 8323985, i32 8324208, i32 8324424, i32 8324632, i32 8324834, i32 8325028, i32 8325216, i32 8325396, i32 8325570, i32 8325737, i32 8325897, i32 8326051, i32 8326198, i32 8326338, i32 8326472, i32 8326600, i32 8326721, i32 8326836, i32 8326945, i32 8327048, i32 8327144, i32 8327234, i32 8327318, i32 8327396, i32 8327467, i32 8327533, i32 8327592, i32 8327645, i32 8327692, i32 8327733, i32 8327768, i32 8327796, i32 8327818, i32 8327834, i32 8327844, i32 8327847, i32 8327844, i32 8327835, i32 8327819, i32 8327796, i32 8327767, i32 8327731, i32 8327689, i32 8327640, i32 8327583, i32 8327520, i32 8327450, i32 8327372, i32 8327287, i32 8327195, i32 8327095, i32 8326987, i32 8326871, i32 8326748, i32 8326616, i32 8326476, i32 8326327, i32 8326169, i32 8326003, i32 8325827, i32 8325642, i32 8325447, i32 8325243, i32 8325028, i32 8324802, i32 8324566, i32 8324319, i32 8324060, i32 8323789, i32 8323506, i32 8323211, i32 8322902, i32 8322579, i32 8322243, i32 8321892, i32 8321526, i32 8321144, i32 8320746, i32 8320331, i32 8319898, i32 8319446, i32 8318975, i32 8318484, i32 8317971, i32 8317437, i32 8316879, i32 8316297, i32 8315689, i32 8315054, i32 8314390, i32 8313697, i32 8312972, i32 8312213, i32 8311419, i32 8310587, i32 8309715, i32 8308801, i32 8307841, i32 8306833, i32 8305773, i32 8304657, i32 8303482, i32 8302244, i32 8300936, i32 8299554, i32 8298091, i32 8296541, i32 8294895, i32 8293146, i32 8291284, i32 8289297, i32 8287173, i32 8284897, i32 8282453, i32 8279823, i32 8276983, i32 8273907, i32 8270566, i32 8266924, i32 8262936, i32 8258551, i32 8253706, i32 8248323, i32 8242304, i32 8235529, i32 8227840, i32 8219034, i32 8208841, i32 8196894, i32 8182679, i32 8165457, i32 8144120, i32 8116924, i32 8080947, i32 8030872, i32 7955847, i32 7829465, i32 7564599], align 16
%p = getelementptr inbounds [256 x i32], ptr @data, i64 0, i64 %idx
%x = load i32, ptr %p, align 8
ret i32 %x
@pure
@llvm
def we_float(idx: int) -> float32:
@data = private unnamed_addr constant [256 x float] [float 0x3EB164ECA0000000, float 0x3E40589D80000000, float 0x3E4AD6B240000000, float 0x3E519335A0000000, float 0x3E5522E6E0000000, float 0x3E58509100000000, float 0x3E5B38D1E0000000, float 0x3E5DECD8C0000000, float 0x3E603BF040000000, float 0x3E6170DB20000000, float 0x3E629802A0000000, float 0x3E63B38900000000, float 0x3E64C515C0000000, float 0x3E65CDF8A0000000, float 0x3E66CF4100000000, float 0x3E67C9CDE0000000, float 0x3E68BE5960000000, float 0x3E69AD8060000000, float 0x3E6A97C8C0000000, float 0x3E6B7DA5E0000000, float 0x3E6C5F7BE0000000, float 0x3E6D3DA240000000, float 0x3E6E186680000000, float 0x3E6EF00CC0000000, float 0x3E6FC4D260000000, float 0x3E704B76E0000000, float 0x3E70B34840000000, float 0x3E7119F380000000, float 0x3E717F8CE0000000, float 0x3E71E426E0000000, float 0x3E7247D260000000, float 0x3E72AA9EE0000000, float 0x3E730C9AA0000000, float 0x3E736DD2E0000000, float 0x3E73CE53E0000000, float 0x3E742E28C0000000, float 0x3E748D5C60000000, float 0x3E74EBF860000000, float 0x3E754A0620000000, float 0x3E75A78E40000000, float 0x3E760498C0000000, float 0x3E76612D60000000, float 0x3E76BD5360000000, float 0x3E77191180000000, float 0x3E77746E20000000, float 0x3E77CF6F80000000, float 0x3E782A1B60000000, float 0x3E78847720000000, float 0x3E78DE8860000000, float 0x3E793853C0000000, float 0x3E7991DE40000000, float 0x3E79EB2C80000000, float 0x3E7A4442C0000000, float 0x3E7A9D2560000000, float 0x3E7AF5D840000000, float 0x3E7B4E5F80000000, float 0x3E7BA6BEC0000000, float 0x3E7BFEF9A0000000, float 0x3E7C5713A0000000, float 0x3E7CAF1020000000, float 0x3E7D06F280000000, float 0x3E7D5EBE00000000, float 0x3E7DB67560000000, float 0x3E7E0E1C00000000, float 0x3E7E65B480000000, float 0x3E7EBD41E0000000, float 0x3E7F14C6E0000000, float 0x3E7F6C4620000000, float 0x3E7FC3C260000000, float 0x3E800D9F20000000, float 0x3E80395E00000000, float 0x3E80651F20000000, float 0x3E8090E3C0000000, float 0x3E80BCAD00000000, float 0x3E80E87C20000000, float 0x3E81145240000000, float 0x3E81403060000000, float 0x3E816C17E0000000, float 0x3E819809A0000000, float 0x3E81C406E0000000, float 0x3E81F010A0000000, float 0x3E821C27E0000000, float 0x3E82484DC0000000, float 0x3E82748340000000, float 0x3E82A0C980000000, float 0x3E82CD2160000000, float 0x3E82F98C20000000, float 0x3E83260A80000000, float 0x3E83529DA0000000, float 0x3E837F46A0000000, float 0x3E83AC0640000000, float 0x3E83D8DDC0000000, float 0x3E8405CE00000000, float 0x3E8432D7E0000000, float 0x3E845FFCA0000000, float 0x3E848D3D00000000, float 0x3E84BA9A20000000, float 0x3E84E81500000000, float 0x3E8515AE80000000, float 0x3E854367C0000000, float 0x3E857141C0000000, float 0x3E859F3D60000000, float 0x3E85CD5BE0000000, float 0x3E85FB9E00000000, float 0x3E862A04E0000000, float 0x3E865891A0000000, float 0x3E86874520000000, float 0x3E86B62080000000, float 0x3E86E524C0000000, float 0x3E87145320000000, float 0x3E8743AC60000000, float 0x3E877331E0000000, float 0x3E87A2E480000000, float 0x3E87D2C560000000, float 0x3E8802D5C0000000, float 0x3E883316C0000000, float 0x3E88638960000000, float 0x3E88942EC0000000, float 0x3E88C50840000000, float 0x3E88F61700000000, float 0x3E89275C00000000, float 0x3E8958D8C0000000, float 0x3E898A8E40000000, float 0x3E89BC7DE0000000, float 0x3E89EEA8E0000000, float 0x3E8A211080000000, float 0x3E8A53B640000000, float 0x3E8A869B40000000, float 0x3E8AB9C0E0000000, float 0x3E8AED28A0000000, float 0x3E8B20D3E0000000, float 0x3E8B54C400000000, float 0x3E8B88FA80000000, float 0x3E8BBD78E0000000, float 0x3E8BF240A0000000, float 0x3E8C275340000000, float 0x3E8C5CB280000000, float 0x3E8C925FE0000000, float 0x3E8CC85D00000000, float 0x3E8CFEAB80000000, float 0x3E8D354D40000000, float 0x3E8D6C43E0000000, float 0x3E8DA39160000000, float 0x3E8DDB3740000000, float 0x3E8E1337C0000000, float 0x3E8E4B9480000000, float 0x3E8E844FA0000000, float 0x3E8EBD6B20000000, float 0x3E8EF6E900000000, float 0x3E8F30CB60000000, float 0x3E8F6B14A0000000, float 0x3E8FA5C6C0000000, float 0x3E8FE0E400000000, float 0x3E900E3780000000, float 0x3E902C34E0000000, float 0x
%p = getelementptr inbounds [256 x float], ptr @data, i64 0, i64 %idx
%x = load float, ptr %p, align 8
ret float %x
@pure
@llvm
def fe_float(idx: int) -> float32:
@data = private unnamed_addr constant [256 x float] [float 1.000000e+00, float 0x3FEE0545E0000000, float 0x3FECD0A660000000, float 0x3FEBE50080000000, float 0x3FEB210F00000000, float 0x3FEA76BAA0000000, float 0x3FE9DE9720000000, float 0x3FE95431C0000000, float 0x3FE8D4A380000000, float 0x3FE85DE880000000, float 0x3FE7EE8A20000000, float 0x3FE7856EA0000000, float 0x3FE721BB60000000, float 0x3FE6C2C340000000, float 0x3FE667FA60000000, float 0x3FE610EDC0000000, float 0x3FE5BD3D60000000, float 0x3FE56C9880000000, float 0x3FE51EBA20000000, float 0x3FE4D366C0000000, float 0x3FE48A6B00000000, float 0x3FE44399A0000000, float 0x3FE3FECB20000000, float 0x3FE3BBDC40000000, float 0x3FE37AADA0000000, float 0x3FE33B2340000000, float 0x3FE2FD23E0000000, float 0x3FE2C098C0000000, float 0x3FE2856D20000000, float 0x3FE24B8E20000000, float 0x3FE212EAC0000000, float 0x3FE1DB7320000000, float 0x3FE1A518C0000000, float 0x3FE16FCE60000000, float 0x3FE13B87C0000000, float 0x3FE1083940000000, float 0x3FE0D5D880000000, float 0x3FE0A45B80000000, float 0x3FE073B940000000, float 0x3FE043E8E0000000, float 0x3FE014E2C0000000, float 0x3FDFCD3E00000000, float 0x3FDF722D80000000, float 0x3FDF1886E0000000, float 0x3FDEC03D40000000, float 0x3FDE694540000000, float 0x3FDE139380000000, float 0x3FDDBF1D80000000, float 0x3FDD6BD980000000, float 0x3FDD19BDE0000000, float 0x3FDCC8C1E0000000, float 0x3FDC78DCE0000000, float 0x3FDC2A06E0000000, float 0x3FDBDC3820000000, float 0x3FDB8F6960000000, float 0x3FDB4393A0000000, float 0x3FDAF8B040000000, float 0x3FDAAEB8E0000000, float 0x3FDA65A760000000, float 0x3FDA1D7620000000, float 0x3FD9D61F60000000, float 0x3FD98F9E00000000, float 0x3FD949ECA0000000, float 0x3FD9050680000000, float 0x3FD8C0E700000000, float 0x3FD87D8980000000, float 0x3FD83AE9C0000000, float 0x3FD7F90360000000, float 0x3FD7B7D2A0000000, float 0x3FD7775380000000, float 0x3FD7378240000000, float 0x3FD6F85B40000000, float 0x3FD6B9DB20000000, float 0x3FD67BFE80000000, float 0x3FD63EC240000000, float 0x3FD6022320000000, float 0x3FD5C61E20000000, float 0x3FD58AB060000000, float 0x3FD54FD720000000, float 0x3FD5158F80000000, float 0x3FD4DBD700000000, float 0x3FD4A2AB20000000, float 0x3FD46A0920000000, float 0x3FD431EEE0000000, float 0x3FD3FA5A00000000, float 0x3FD3C34840000000, float 0x3FD38CB740000000, float 0x3FD356A520000000, float 0x3FD3210FC0000000, float 0x3FD2EBF520000000, float 0x3FD2B75340000000, float 0x3FD2832860000000, float 0x3FD24F7280000000, float 0x3FD21C3000000000, float 0x3FD1E95F00000000, float 0x3FD1B6FDE0000000, float 0x3FD1850B00000000, float 0x3FD15384E0000000, float 0x3FD12269C0000000, float 0x3FD0F1B860000000, float 0x3FD0C16F00000000, float 0x3FD0918C40000000, float 0x3FD0620F00000000, float 0x3FD032F580000000, float 0x3FD0043EA0000000, float 0x3FCFABD240000000, float 0x3FCF4FE760000000, float 0x3FCEF4BA00000000, float 0x3FCE9A4800000000, float 0x3FCE408EE0000000, float 0x3FCDE78C40000000, float 0x3FCD8F3E20000000, float 0x3FCD37A220000000, float 0x3FCCE0B640000000, float 0x3FCC8A7840000000, float 0x3FCC34E660000000, float 0x3FCBDFFE60000000, float 0x3FCB8BBE80000000, float 0x3FCB3824C0000000, float 0x3FCAE52F40000000, float 0x3FCA92DC40000000, float 0x3FCA412A00000000, float 0x3FC9F016E0000000, float 0x3FC99FA0E0000000, float 0x3FC94FC6A0000000, float 0x3FC9008660000000, float 0x3FC8B1DEA0000000, float 0x3FC863CDC0000000, float 0x3FC8165240000000, float 0x3FC7C96AC0000000, float 0x3FC77D15C0000000, float 0x3FC73151C0000000, float 0x3FC6E61D60000000, float 0x3FC69B7760000000, float 0x3FC6515E60000000, float 0x3FC607D100000000, float 0x3FC5BECE00000000, float 0x3FC5765440000000, float 0x3FC52E6260000000, float 0x3FC4E6F760000000, float 0x3FC4A011E0000000, float 0x3FC459B0C0000000, float 0x3FC413D300000000, float 0x3FC3CE7780000000, float 0x3FC3899D20000000, float 0x3FC34542E0000000, float 0x3FC30167A0000000, float 0x3FC2BE0A80000000, float 0x3FC27B2A80000000, float 0x3FC238C680000000, float 0x3FC1F6DDA0000000, float 0x3FC1B56F20000000, float 0x3FC17479E0000000, float 0x3FC133FD20000000, float 0x3FC0F3F800000000, float 0x3FC0B4
%p = getelementptr inbounds [256 x float], ptr @data, i64 0, i64 %idx
%x = load float, ptr %p, align 8
ret float %x
ziggurat_nor_r = 3.6541528853610087963519472518
ziggurat_nor_inv_r = 0.27366123732975827203338247596 # 1.0 / ziggurat_nor_r;
ziggurat_exp_r = 7.6971174701310497140446280481
ziggurat_nor_r_f = float32(3.6541528853610087963519472518)
ziggurat_nor_inv_r_f = float32(0.27366123732975827203338247596)
ziggurat_exp_r_f = float32(7.6971174701310497140446280481)