#define NULL ((void *)0)
typedef unsigned long size_t; // Customize by platform.
typedef long intptr_t;
typedef unsigned long uintptr_t;
typedef long scalar_t__; // Either arithmetic or pointer type.
/* By default, we understand bool (as a convenience). */
typedef int bool;
#define false 0
#define true 1

/* Forward declarations */

/* Type definitions */

/* Variables and functions */
int /*<<< orphan*/ puts(char *);
int GaussLegendreRule(double **x, double **w, int npoints) {
  int status = 0;
  static double x10[] = {
      0.148874338981631210884826001130, 0.433395394129247190799265943166,
      0.679409568299024406234327365115, 0.865063366688984510732096688423,
      0.973906528517171720077964012084};
  static double w10[] = {
      0.295524224714752870173892994651, 0.269266719309996355091226921569,
      0.219086362515982043995534934228, 0.149451349150580593145776339658,
      0.066671344308688137593568809893};
  static double x20[] = {
      0.076526521133497333754640409399, 0.227785851141645078080496195369,
      0.373706088715419560672548177025, 0.510867001950827098004364050955,
      0.636053680726515025452836696226, 0.746331906460150792614305070356,
      0.839116971822218823394529061702, 0.912234428251325905867752441203,
      0.963971927277913791267666131197, 0.993128599185094924786122388471};
  static double w20[] = {
      0.152753387130725850698084331955, 0.149172986472603746787828737002,
      0.142096109318382051329298325067, 0.131688638449176626898494499748,
      0.118194531961518417312377377711, 0.101930119817240435036750135480,
      0.083276741576704748724758143222, 0.062672048334109063569506535187,
      0.040601429800386941331039952275, 0.017614007139152118311861962352};
  static double x32[] = {
      0.048307665687738316234812570441, 0.144471961582796493485186373599,
      0.239287362252137074544603209166, 0.331868602282127649779916805730,
      0.421351276130635345364119436172, 0.506899908932229390023747474378,
      0.587715757240762329040745476402, 0.663044266930215200975115168663,
      0.732182118740289680387426665091, 0.794483795967942406963097298970,
      0.849367613732569970133693004968, 0.896321155766052123965307243719,
      0.934906075937739689170919134835, 0.964762255587506430773811928118,
      0.985611511545268335400175044631, 0.997263861849481563544981128665};
  static double w32[] = {
      0.0965400885147278005667648300636, 0.0956387200792748594190820022041,
      0.0938443990808045656391802376681, 0.0911738786957638847128685771116,
      0.0876520930044038111427714627518, 0.0833119242269467552221990746043,
      0.0781938957870703064717409188283, 0.0723457941088485062253993564785,
      0.0658222227763618468376500637069, 0.0586840934785355471452836373002,
      0.0509980592623761761961632446895, 0.0428358980222266806568786466061,
      0.0342738629130214331026877322524, 0.0253920653092620594557525897892,
      0.0162743947309056706051705622064, 0.0070186100094700966004070637389};
  static double x64[] = {
      0.024350292663424432508955842854, 0.072993121787799039449542941940,
      0.121462819296120554470376463492, 0.169644420423992818037313629748,
      0.217423643740007084149648748989, 0.264687162208767416373964172510,
      0.311322871990210956157512698560, 0.357220158337668115950442615046,
      0.402270157963991603695766771260, 0.446366017253464087984947714759,
      0.489403145707052957478526307022, 0.531279464019894545658013903544,
      0.571895646202634034283878116659, 0.611155355172393250248852971019,
      0.648965471254657339857761231993, 0.685236313054233242563558371031,
      0.719881850171610826848940217832, 0.752819907260531896611863774886,
      0.783972358943341407610220525214, 0.813265315122797559741923338086,
      0.840629296252580362751691544696, 0.865999398154092819760783385070,
      0.889315445995114105853404038273, 0.910522137078502805756380668008,
      0.929569172131939575821490154559, 0.946411374858402816062481491347,
      0.961008799652053718918614121897, 0.973326827789910963741853507352,
      0.983336253884625956931299302157, 0.991013371476744320739382383443,
      0.996340116771955279346924500676, 0.999305041735772139456905624346};
  static double w64[] = {
      0.0486909570091397203833653907347, 0.0485754674415034269347990667840,
      0.0483447622348029571697695271580, 0.0479993885964583077281261798713,
      0.0475401657148303086622822069442, 0.0469681828162100173253262857546,
      0.0462847965813144172959532492323, 0.0454916279274181444797709969713,
      0.0445905581637565630601347100309, 0.0435837245293234533768278609737,
      0.0424735151236535890073397679088, 0.0412625632426235286101562974736,
      0.0399537411327203413866569261283, 0.0385501531786156291289624969468,
      0.0370551285402400460404151018096, 0.0354722132568823838106931467152,
      0.0338051618371416093915654821107, 0.0320579283548515535854675043479,
      0.0302346570724024788679740598195, 0.0283396726142594832275113052002,
      0.0263774697150546586716917926252, 0.0243527025687108733381775504091,
      0.0222701738083832541592983303842, 0.0201348231535302093723403167285,
      0.0179517157756973430850453020011, 0.0157260304760247193219659952975,
      0.0134630478967186425980607666860, 0.0111681394601311288185904930192,
      0.0088467598263639477230309146597, 0.0065044579689783628561173604000,
      0.0041470332605624676352875357286, 0.0017832807216964329472960791450};
  if (npoints == 10) {
    *x = x10;
    *w = w10;
  } else if (npoints == 20) {
    *x = x20;
    *w = w20;
  } else if (npoints == 32) {
    *x = x32;
    *w = w32;
  } else if (npoints == 64) {
    *x = x64;
    *w = w64;
  } else {
    puts("use 10, 20, 32 or 64 nodes for legendre.");
    status = -1;
  }
  return (status);
}


x86 assembly (clang, -O0):
<GaussLegendreRule>:
push   %rbp
mov    %rsp,%rbp
sub    $0x20,%rsp
mov    %rdi,-0x8(%rbp)
mov    %rsi,-0x10(%rbp)
mov    %edx,-0x14(%rbp)
movl   $0x0,-0x18(%rbp)
cmpl   $0xa,-0x14(%rbp)
jne    1155 <GaussLegendreRule+0x45>
mov    -0x8(%rbp),%rax
lea    0x2ef1(%rip),%rcx
mov    %rcx,(%rax)
mov    -0x10(%rbp),%rax
lea    0x2f13(%rip),%rcx
mov    %rcx,(%rax)
jmp    11f8 <GaussLegendreRule+0xe8>
cmpl   $0x14,-0x14(%rbp)
jne    1180 <GaussLegendreRule+0x70>
mov    -0x8(%rbp),%rax
lea    0x2f26(%rip),%rcx
mov    %rcx,(%rax)
mov    -0x10(%rbp),%rax
lea    0x2f68(%rip),%rcx
mov    %rcx,(%rax)
jmp    11f3 <GaussLegendreRule+0xe3>
cmpl   $0x20,-0x14(%rbp)
jne    11ab <GaussLegendreRule+0x9b>
mov    -0x8(%rbp),%rax
lea    0x2f9b(%rip),%rcx
mov    %rcx,(%rax)
mov    -0x10(%rbp),%rax
lea    0x300d(%rip),%rcx
mov    %rcx,(%rax)
jmp    11ee <GaussLegendreRule+0xde>
cmpl   $0x40,-0x14(%rbp)
jne    11d6 <GaussLegendreRule+0xc6>
mov    -0x8(%rbp),%rax
lea    0x3070(%rip),%rcx
mov    %rcx,(%rax)
mov    -0x10(%rbp),%rax
lea    0x3162(%rip),%rcx
mov    %rcx,(%rax)
jmp    11e9 <GaussLegendreRule+0xd9>
lea    0xe23(%rip),%rdi
call   1030 <puts@plt>
movl   $0xffffffff,-0x18(%rbp)
jmp    11ee <GaussLegendreRule+0xde>
jmp    11f3 <GaussLegendreRule+0xe3>
jmp    11f8 <GaussLegendreRule+0xe8>
mov    -0x18(%rbp),%eax
add    $0x20,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<GaussLegendreRule>:
push   %rax
cmp    $0x1f,%edx
jg     1133 <GaussLegendreRule+0x23>
cmp    $0xa,%edx
je     1163 <GaussLegendreRule+0x53>
cmp    $0x14,%edx
jne    1150 <GaussLegendreRule+0x40>
lea    0x2f69(%rip),%rax
mov    %rax,(%rdi)
lea    0x2faf(%rip),%rax
jmp    1187 <GaussLegendreRule+0x77>
cmp    $0x20,%edx
je     1176 <GaussLegendreRule+0x66>
cmp    $0x40,%edx
jne    1150 <GaussLegendreRule+0x40>
lea    0x30ec(%rip),%rax
mov    %rax,(%rdi)
lea    0x31e2(%rip),%rax
jmp    1187 <GaussLegendreRule+0x77>
lea    0xea9(%rip),%rdi
call   1030 <puts@plt>
mov    $0xffffffff,%eax
pop    %rcx
ret
lea    0x2ec6(%rip),%rax
mov    %rax,(%rdi)
lea    0x2eec(%rip),%rax
jmp    1187 <GaussLegendreRule+0x77>
lea    0x2fb3(%rip),%rax
mov    %rax,(%rdi)
lea    0x3029(%rip),%rax
mov    %rax,(%rsi)
xor    %eax,%eax
pop    %rcx
ret

LLVM IR (-O0):
@GaussLegendreRule.x10 = internal global [5 x double] [double 0x3FC30E507891E27A, double 0x3FDBBCC009016ADC, double 0x3FE5BDB9228DE198, double 0x3FEBAE995E9CB2F3, double 0x3FEF2A3E062AF2D8]
@GaussLegendreRule.w10 = internal global [5 x double] [double 0x3FD2E9DE7014D6EF, double 0x3FD13BAA7A559BFE, double 0x3FCC0B059D00BC31, double 0x3FC32138C878EFE5, double 0x3FB1115F8B62DC1F]
@GaussLegendreRule.x20 = internal global [10 x double] [double 0x3FB3973DF98B86B0, double 0x3FCD281636928BC0, double 0x3FD7EACCF15652C4, double 0x3FE05905C13F7FF7, double 0x3FE45A8D3FA710DB, double 0x3FE7E1F37346A54E, double 0x3FEADA0BD5EFD6E7, double 0x3FED31064173FD92, double 0x3FEED8DBA7BD769F, double 0x3FEFC7B5A0C71CE0]
@GaussLegendreRule.w20 = internal global [10 x double] [double 0x3FC38D6C490A3370, double 0x3FC31819B52C5992, double 0x3FC230348F34A535, double 0x3FC0DB2C5DB26DFF, double 0x3FBE41FF31573B48, double 0x3FBA1817A317A821, double 0x3FB5519FE196E24A, double 0x3FB00B467DF7E475, double 0x3FA4C9B5EA53B67F, double 0x3F9209680274E8AF]
@GaussLegendreRule.x32 = internal global [16 x double] [double 0x3FA8BBC8488CC499, double 0x3FC27E0EA717F237, double 0x3FCEA0F7E19C094B, double 0x3FD53D55CE57BDF6, double 0x3FDAF76B57C6F8F1, double 0x3FE038862866B29D, double 0x3FE2CE9146962CA4, double 0x3FE537A89C487F8A, double 0x3FE76E0931D693BA, double 0x3FE96C69481C4BC5, double 0x3FEB2E04FD686A13, double 0x3FECAEA9B4574CB9, double 0x3FEDEAC0259F7F42, double 0x3FEEDF5518053BAA, double 0x3FEF8A212714BCDC, double 0x3FEFE995E70409B6]
@GaussLegendreRule.w32 = internal global [16 x double] [double 0x3FB8B6D9EAEC77AD, double 0x3FB87BC776F8C6D7, double 0x3FB8062FC0F6FEF9, double 0x3FB7572BDB3F6E51, double 0x3FB6705E18E13ED1, double 0x3FB553EE25EBEBC6, double 0x3FB40483E126FD14, double 0x3FB2854103B35E0C, double 0x3FB0D9B9A62CAC10, double 0x3FAE0BD76C924981, double 0x3FAA1C6AE961FBFA, double 0x3FA5EE963A335495, double 0x3FA18C5800A355D9, double 0x3F9A0060A8531FFA, double 0x3F90AA3C248696C9, double 0x3F7CBF8BC743CC5C]
@GaussLegendreRule.x64 = internal global [32 x double] [double 0x3F98EF487A8CBC33, double 0x3FB2AFAD5EE95AD0, double 0x3FBF182FF48E8A27, double 0x3FC5B6E88AD5C00F, double 0x3FCBD489B79EC83B, double 0x3FD0F0A26C56E49C, double 0x3FD3ECB6C46C76CB, double 0x3FD6DCB1F0620FFF, double 0x3FD9BECB55272C9D, double 0x3FDC9142C5898FC5, double 0x3FDF52619257C3A1, double 0x3FE1003DCA600F34, double 0x3FE24CF81925487F, double 0x3FE38E95ACE7B3C3, double 0x3FE4C4533C68B412, double 0x3FE5ED74B4532F83, double 0x3FE70945A96F12C4, double 0x3FE81719C62EC68E, double 0x3FE9164D335425E2, double 0x3FEA0644FB6D8DB8, double 0x3FEAE66F68EEDBC6, double 0x3FEBB6445EADAE2C, double 0x3FEC7545AA8C0DAD, double 0x3FED22FF5221288A, double 0x3FEDBF07D935A5AF, double 0x3FEE490081F2891B, double 0x3FEEC09586B58FAA, double 0x3FEF257E4DB5AABC, double 0x3FEF777D976CFADA, double 0x3FEFB661AC8C85A9, double 0x3FEFE204AB274ECD, double 0x3FEFFA4E911F7533]
@GaussLegendreRule.w64 = internal global [32 x double] [double 0x3FA8EE0567EE2E50, double 0x3FA8DEE238192CD0, double 0x3FA8C0A5097676BA, double 0x3FA89360387FE3A9, double 0x3FA8572F41FBB52D, double 0x3FA80C36B24BDD19, double 0x3FA7B2A40F3CCDDA, double 0x3FA74AADBC614FB3, double 0x3FA6D492DA0C2510, double 0x3FA6509B1EFB8DEE, double 0x3FA5BF16ACCDF42E, double 0x3FA5205DDF5A36DB, double 0x3FA474D117092813, double 0x3FA3BCD87E50DE1C, double 0x3FA2F8E3CA7574DD, double 0x3FA22969F7B5C8C9, double 0x3FA14EE9010D92C8, double 0x3FA069E593B92370, double 0x3F9EF5D57D53B4A2, double 0x3F9D05133C3AF937, double 0x3F9B02B2071C0C2D, double 0x3F98EFEA346845B4, double 0x3F96CDFE10BBA3C0, double 0x3F949E391BD2145F, double 0x3F9261EF40A7A2E7, double 0x3F901A7C0A5C987F, double 0x3F8B9283B35DFA9C, double 0x3F86DF524DE84E24, double 0x3F821E400109D479, double 0x3F7AA46B24145A02, double 0x3F70FC7AC3AC322F, double 0x3F5D379F1846042E]
@.str = [41 x i8] c"use 10, 20, 32 or 64 nodes for legendre.\00"
define i32 @GaussLegendreRule(double** %0, double** %1, i32 %2) {
%4 = alloca double**
%5 = alloca double**
%6 = alloca i32
%7 = alloca i32
store double** %0, double*** %4
store double** %1, double*** %5
store i32 %2, i32* %6
store i32 0, i32* %7
%8 = load i32, i32* %6
%9 = icmp eq i32 %8, 10
br i1 %9, label %10, label %13
10: ; preds = %3
%11 = load double**, double*** %4
store double* getelementptr inbounds ([5 x double], [5 x double]* @GaussLegendreRule.x10, i64 0, i64 0), double** %11
%12 = load double**, double*** %5
store double* getelementptr inbounds ([5 x double], [5 x double]* @GaussLegendreRule.w10, i64 0, i64 0), double** %12
br label %36
13: ; preds = %3
%14 = load i32, i32* %6
%15 = icmp eq i32 %14, 20
br i1 %15, label %16, label %19
16: ; preds = %13
%17 = load double**, double*** %4
store double* getelementptr inbounds ([10 x double], [10 x double]* @GaussLegendreRule.x20, i64 0, i64 0), double** %17
%18 = load double**, double*** %5
store double* getelementptr inbounds ([10 x double], [10 x double]* @GaussLegendreRule.w20, i64 0, i64 0), double** %18
br label %35
19: ; preds = %13
%20 = load i32, i32* %6
%21 = icmp eq i32 %20, 32
br i1 %21, label %22, label %25
22: ; preds = %19
%23 = load double**, double*** %4
store double* getelementptr inbounds ([16 x double], [16 x double]* @GaussLegendreRule.x32, i64 0, i64 0), double** %23
%24 = load double**, double*** %5
store double* getelementptr inbounds ([16 x double], [16 x double]* @GaussLegendreRule.w32, i64 0, i64 0), double** %24
br label %34
25: ; preds = %19
%26 = load i32, i32* %6
%27 = icmp eq i32 %26, 64
br i1 %27, label %28, label %31
28: ; preds = %25
%29 = load double**, double*** %4
store double* getelementptr inbounds ([32 x double], [32 x double]* @GaussLegendreRule.x64, i64 0, i64 0), double** %29
%30 = load double**, double*** %5
store double* getelementptr inbounds ([32 x double], [32 x double]* @GaussLegendreRule.w64, i64 0, i64 0), double** %30
br label %33
31: ; preds = %25
%32 = call i32 @puts(i8* getelementptr inbounds ([41 x i8], [41 x i8]* @.str, i64 0, i64 0))
store i32 -1, i32* %7
br label %33
33: ; preds = %31, %28
br label %34
34: ; preds = %33, %22
br label %35
35: ; preds = %34, %16
br label %36
36: ; preds = %35, %10
%37 = load i32, i32* %7
ret i32 %37
}

LLVM IR (-O2):
@GaussLegendreRule.x10 = internal global [5 x double] [double 0x3FC30E507891E27A, double 0x3FDBBCC009016ADC, double 0x3FE5BDB9228DE198, double 0x3FEBAE995E9CB2F3, double 0x3FEF2A3E062AF2D8]
@GaussLegendreRule.w10 = internal global [5 x double] [double 0x3FD2E9DE7014D6EF, double 0x3FD13BAA7A559BFE, double 0x3FCC0B059D00BC31, double 0x3FC32138C878EFE5, double 0x3FB1115F8B62DC1F]
@GaussLegendreRule.x20 = internal global [10 x double] [double 0x3FB3973DF98B86B0, double 0x3FCD281636928BC0, double 0x3FD7EACCF15652C4, double 0x3FE05905C13F7FF7, double 0x3FE45A8D3FA710DB, double 0x3FE7E1F37346A54E, double 0x3FEADA0BD5EFD6E7, double 0x3FED31064173FD92, double 0x3FEED8DBA7BD769F, double 0x3FEFC7B5A0C71CE0]
@GaussLegendreRule.w20 = internal global [10 x double] [double 0x3FC38D6C490A3370, double 0x3FC31819B52C5992, double 0x3FC230348F34A535, double 0x3FC0DB2C5DB26DFF, double 0x3FBE41FF31573B48, double 0x3FBA1817A317A821, double 0x3FB5519FE196E24A, double 0x3FB00B467DF7E475, double 0x3FA4C9B5EA53B67F, double 0x3F9209680274E8AF]
@GaussLegendreRule.x32 = internal global [16 x double] [double 0x3FA8BBC8488CC499, double 0x3FC27E0EA717F237, double 0x3FCEA0F7E19C094B, double 0x3FD53D55CE57BDF6, double 0x3FDAF76B57C6F8F1, double 0x3FE038862866B29D, double 0x3FE2CE9146962CA4, double 0x3FE537A89C487F8A, double 0x3FE76E0931D693BA, double 0x3FE96C69481C4BC5, double 0x3FEB2E04FD686A13, double 0x3FECAEA9B4574CB9, double 0x3FEDEAC0259F7F42, double 0x3FEEDF5518053BAA, double 0x3FEF8A212714BCDC, double 0x3FEFE995E70409B6]
@GaussLegendreRule.w32 = internal global [16 x double] [double 0x3FB8B6D9EAEC77AD, double 0x3FB87BC776F8C6D7, double 0x3FB8062FC0F6FEF9, double 0x3FB7572BDB3F6E51, double 0x3FB6705E18E13ED1, double 0x3FB553EE25EBEBC6, double 0x3FB40483E126FD14, double 0x3FB2854103B35E0C, double 0x3FB0D9B9A62CAC10, double 0x3FAE0BD76C924981, double 0x3FAA1C6AE961FBFA, double 0x3FA5EE963A335495, double 0x3FA18C5800A355D9, double 0x3F9A0060A8531FFA, double 0x3F90AA3C248696C9, double 0x3F7CBF8BC743CC5C]
@GaussLegendreRule.x64 = internal global [32 x double] [double 0x3F98EF487A8CBC33, double 0x3FB2AFAD5EE95AD0, double 0x3FBF182FF48E8A27, double 0x3FC5B6E88AD5C00F, double 0x3FCBD489B79EC83B, double 0x3FD0F0A26C56E49C, double 0x3FD3ECB6C46C76CB, double 0x3FD6DCB1F0620FFF, double 0x3FD9BECB55272C9D, double 0x3FDC9142C5898FC5, double 0x3FDF52619257C3A1, double 0x3FE1003DCA600F34, double 0x3FE24CF81925487F, double 0x3FE38E95ACE7B3C3, double 0x3FE4C4533C68B412, double 0x3FE5ED74B4532F83, double 0x3FE70945A96F12C4, double 0x3FE81719C62EC68E, double 0x3FE9164D335425E2, double 0x3FEA0644FB6D8DB8, double 0x3FEAE66F68EEDBC6, double 0x3FEBB6445EADAE2C, double 0x3FEC7545AA8C0DAD, double 0x3FED22FF5221288A, double 0x3FEDBF07D935A5AF, double 0x3FEE490081F2891B, double 0x3FEEC09586B58FAA, double 0x3FEF257E4DB5AABC, double 0x3FEF777D976CFADA, double 0x3FEFB661AC8C85A9, double 0x3FEFE204AB274ECD, double 0x3FEFFA4E911F7533]
@GaussLegendreRule.w64 = internal global [32 x double] [double 0x3FA8EE0567EE2E50, double 0x3FA8DEE238192CD0, double 0x3FA8C0A5097676BA, double 0x3FA89360387FE3A9, double 0x3FA8572F41FBB52D, double 0x3FA80C36B24BDD19, double 0x3FA7B2A40F3CCDDA, double 0x3FA74AADBC614FB3, double 0x3FA6D492DA0C2510, double 0x3FA6509B1EFB8DEE, double 0x3FA5BF16ACCDF42E, double 0x3FA5205DDF5A36DB, double 0x3FA474D117092813, double 0x3FA3BCD87E50DE1C, double 0x3FA2F8E3CA7574DD, double 0x3FA22969F7B5C8C9, double 0x3FA14EE9010D92C8, double 0x3FA069E593B92370, double 0x3F9EF5D57D53B4A2, double 0x3F9D05133C3AF937, double 0x3F9B02B2071C0C2D, double 0x3F98EFEA346845B4, double 0x3F96CDFE10BBA3C0, double 0x3F949E391BD2145F, double 0x3F9261EF40A7A2E7, double 0x3F901A7C0A5C987F, double 0x3F8B9283B35DFA9C, double 0x3F86DF524DE84E24, double 0x3F821E400109D479, double 0x3F7AA46B24145A02, double 0x3F70FC7AC3AC322F, double 0x3F5D379F1846042E]
@.str = [41 x i8] c"use 10, 20, 32 or 64 nodes for legendre.\00"
define i32 @GaussLegendreRule(double** nocapture writeonly %0, double** nocapture writeonly %1, i32 %2) {
switch i32 %2, label %8 [
i32 10, label %4
i32 20, label %5
i32 32, label %6
i32 64, label %7
]
4: ; preds = %3
store double* getelementptr inbounds ([5 x double], [5 x double]* @GaussLegendreRule.x10, i64 0, i64 0), double** %0
store double* getelementptr inbounds ([5 x double], [5 x double]* @GaussLegendreRule.w10, i64 0, i64 0), double** %1
br label %10
5: ; preds = %3
store double* getelementptr inbounds ([10 x double], [10 x double]* @GaussLegendreRule.x20, i64 0, i64 0), double** %0
store double* getelementptr inbounds ([10 x double], [10 x double]* @GaussLegendreRule.w20, i64 0, i64 0), double** %1
br label %10
6: ; preds = %3
store double* getelementptr inbounds ([16 x double], [16 x double]* @GaussLegendreRule.x32, i64 0, i64 0), double** %0
store double* getelementptr inbounds ([16 x double], [16 x double]* @GaussLegendreRule.w32, i64 0, i64 0), double** %1
br label %10
7: ; preds = %3
store double* getelementptr inbounds ([32 x double], [32 x double]* @GaussLegendreRule.x64, i64 0, i64 0), double** %0
store double* getelementptr inbounds ([32 x double], [32 x double]* @GaussLegendreRule.w64, i64 0, i64 0), double** %1
br label %10
8: ; preds = %3
%9 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([41 x i8], [41 x i8]* @.str, i64 0, i64 0))
br label %10
10: ; preds = %5, %7, %8, %6, %4
%11 = phi i32 [ 0, %4 ], [ 0, %5 ], [ 0, %6 ], [ 0, %7 ], [ -1, %8 ]
ret i32 %11
}