#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 */
typedef scalar_t__ uint8_t;
typedef int uint64_t;

/* Variables and functions */
void fiat_p384_from_bytes(uint64_t out1[6], const uint8_t arg1[48]) {
  uint64_t x1;
  uint64_t x2;
  uint64_t x3;
  uint64_t x4;
  uint64_t x5;
  uint64_t x6;
  uint64_t x7;
  uint8_t x8;
  uint64_t x9;
  uint64_t x10;
  uint64_t x11;
  uint64_t x12;
  uint64_t x13;
  uint64_t x14;
  uint64_t x15;
  uint8_t x16;
  uint64_t x17;
  uint64_t x18;
  uint64_t x19;
  uint64_t x20;
  uint64_t x21;
  uint64_t x22;
  uint64_t x23;
  uint8_t x24;
  uint64_t x25;
  uint64_t x26;
  uint64_t x27;
  uint64_t x28;
  uint64_t x29;
  uint64_t x30;
  uint64_t x31;
  uint8_t x32;
  uint64_t x33;
  uint64_t x34;
  uint64_t x35;
  uint64_t x36;
  uint64_t x37;
  uint64_t x38;
  uint64_t x39;
  uint8_t x40;
  uint64_t x41;
  uint64_t x42;
  uint64_t x43;
  uint64_t x44;
  uint64_t x45;
  uint64_t x46;
  uint64_t x47;
  uint8_t x48;
  uint64_t x49;
  uint64_t x50;
  uint64_t x51;
  uint64_t x52;
  uint64_t x53;
  uint64_t x54;
  uint64_t x55;
  uint64_t x56;
  uint64_t x57;
  uint64_t x58;
  uint64_t x59;
  uint64_t x60;
  uint64_t x61;
  uint64_t x62;
  uint64_t x63;
  uint64_t x64;
  uint64_t x65;
  uint64_t x66;
  uint64_t x67;
  uint64_t x68;
  uint64_t x69;
  uint64_t x70;
  uint64_t x71;
  uint64_t x72;
  uint64_t x73;
  uint64_t x74;
  uint64_t x75;
  uint64_t x76;
  uint64_t x77;
  uint64_t x78;
  uint64_t x79;
  uint64_t x80;
  uint64_t x81;
  uint64_t x82;
  uint64_t x83;
  uint64_t x84;
  uint64_t x85;
  uint64_t x86;
  uint64_t x87;
  uint64_t x88;
  uint64_t x89;
  uint64_t x90;
  x1 = ((uint64_t)(arg1[47]) << 56);
  x2 = ((uint64_t)(arg1[46]) << 48);
  x3 = ((uint64_t)(arg1[45]) << 40);
  x4 = ((uint64_t)(arg1[44]) << 32);
  x5 = ((uint64_t)(arg1[43]) << 24);
  x6 = ((uint64_t)(arg1[42]) << 16);
  x7 = ((uint64_t)(arg1[41]) << 8);
  x8 = (arg1[40]);
  x9 = ((uint64_t)(arg1[39]) << 56);
  x10 = ((uint64_t)(arg1[38]) << 48);
  x11 = ((uint64_t)(arg1[37]) << 40);
  x12 = ((uint64_t)(arg1[36]) << 32);
  x13 = ((uint64_t)(arg1[35]) << 24);
  x14 = ((uint64_t)(arg1[34]) << 16);
  x15 = ((uint64_t)(arg1[33]) << 8);
  x16 = (arg1[32]);
  x17 = ((uint64_t)(arg1[31]) << 56);
  x18 = ((uint64_t)(arg1[30]) << 48);
  x19 = ((uint64_t)(arg1[29]) << 40);
  x20 = ((uint64_t)(arg1[28]) << 32);
  x21 = ((uint64_t)(arg1[27]) << 24);
  x22 = ((uint64_t)(arg1[26]) << 16);
  x23 = ((uint64_t)(arg1[25]) << 8);
  x24 = (arg1[24]);
  x25 = ((uint64_t)(arg1[23]) << 56);
  x26 = ((uint64_t)(arg1[22]) << 48);
  x27 = ((uint64_t)(arg1[21]) << 40);
  x28 = ((uint64_t)(arg1[20]) << 32);
  x29 = ((uint64_t)(arg1[19]) << 24);
  x30 = ((uint64_t)(arg1[18]) << 16);
  x31 = ((uint64_t)(arg1[17]) << 8);
  x32 = (arg1[16]);
  x33 = ((uint64_t)(arg1[15]) << 56);
  x34 = ((uint64_t)(arg1[14]) << 48);
  x35 = ((uint64_t)(arg1[13]) << 40);
  x36 = ((uint64_t)(arg1[12]) << 32);
  x37 = ((uint64_t)(arg1[11]) << 24);
  x38 = ((uint64_t)(arg1[10]) << 16);
  x39 = ((uint64_t)(arg1[9]) << 8);
  x40 = (arg1[8]);
  x41 = ((uint64_t)(arg1[7]) << 56);
  x42 = ((uint64_t)(arg1[6]) << 48);
  x43 = ((uint64_t)(arg1[5]) << 40);
  x44 = ((uint64_t)(arg1[4]) << 32);
  x45 = ((uint64_t)(arg1[3]) << 24);
  x46 = ((uint64_t)(arg1[2]) << 16);
  x47 = ((uint64_t)(arg1[1]) << 8);
  x48 = (arg1[0]);
  x49 = (x47 + (uint64_t)x48);
  x50 = (x46 + x49);
  x51 = (x45 + x50);
  x52 = (x44 + x51);
  x53 = (x43 + x52);
  x54 = (x42 + x53);
  x55 = (x41 + x54);
  x56 = (x39 + (uint64_t)x40);
  x57 = (x38 + x56);
  x58 = (x37 + x57);
  x59 = (x36 + x58);
  x60 = (x35 + x59);
  x61 = (x34 + x60);
  x62 = (x33 + x61);
  x63 = (x31 + (uint64_t)x32);
  x64 = (x30 + x63);
  x65 = (x29 + x64);
  x66 = (x28 + x65);
  x67 = (x27 + x66);
  x68 = (x26 + x67);
  x69 = (x25 + x68);
  x70 = (x23 + (uint64_t)x24);
  x71 = (x22 + x70);
  x72 = (x21 + x71);
  x73 = (x20 + x72);
  x74 = (x19 + x73);
  x75 = (x18 + x74);
  x76 = (x17 + x75);
  x77 = (x15 + (uint64_t)x16);
  x78 = (x14 + x77);
  x79 = (x13 + x78);
  x80 = (x12 + x79);
  x81 = (x11 + x80);
  x82 = (x10 + x81);
  x83 = (x9 + x82);
  x84 = (x7 + (uint64_t)x8);
  x85 = (x6 + x84);
  x86 = (x5 + x85);
  x87 = (x4 + x86);
  x88 = (x3 + x87);
  x89 = (x2 + x88);
  x90 = (x1 + x89);
  out1[0] = x55;
  out1[1] = x62;
  out1[2] = x69;
  out1[3] = x76;
  out1[4] = x83;
  out1[5] = x90;
}


x86 assembly (clang, -O0):
<fiat_p384_from_bytes>:
push   %rbp
mov    %rsp,%rbp
sub    $0x128,%rsp
mov    %rdi,-0x8(%rbp)
mov    %rsi,-0x10(%rbp)
mov    -0x10(%rbp),%rax
mov    0x178(%rax),%rax
mov    $0x38,%ecx
shl    %cl,%eax
mov    %eax,-0x14(%rbp)
mov    -0x10(%rbp),%rax
mov    0x170(%rax),%rax
mov    $0x30,%ecx
shl    %cl,%eax
mov    %eax,-0x18(%rbp)
mov    -0x10(%rbp),%rax
mov    0x168(%rax),%rax
mov    $0x28,%ecx
shl    %cl,%eax
mov    %eax,-0x1c(%rbp)
mov    -0x10(%rbp),%rax
mov    0x160(%rax),%rax
mov    $0x20,%ecx
shl    %cl,%eax
mov    %eax,-0x20(%rbp)
mov    -0x10(%rbp),%rax
mov    0x158(%rax),%rax
shl    $0x18,%eax
mov    %eax,-0x24(%rbp)
mov    -0x10(%rbp),%rax
mov    0x150(%rax),%rax
shl    $0x10,%eax
mov    %eax,-0x28(%rbp)
mov    -0x10(%rbp),%rax
mov    0x148(%rax),%rax
shl    $0x8,%eax
mov    %eax,-0x2c(%rbp)
mov    -0x10(%rbp),%rax
mov    0x140(%rax),%rax
mov    %rax,-0x38(%rbp)
mov    -0x10(%rbp),%rax
mov    0x138(%rax),%rax
mov    $0x38,%ecx
shl    %cl,%eax
mov    %eax,-0x3c(%rbp)
mov    -0x10(%rbp),%rax
mov    0x130(%rax),%rax
mov    $0x30,%ecx
shl    %cl,%eax
mov    %eax,-0x40(%rbp)
mov    -0x10(%rbp),%rax
mov    0x128(%rax),%rax
mov    $0x28,%ecx
shl    %cl,%eax
mov    %eax,-0x44(%rbp)
mov    -0x10(%rbp),%rax
mov    0x120(%rax),%rax
mov    $0x20,%ecx
shl    %cl,%eax
mov    %eax,-0x48(%rbp)
mov    -0x10(%rbp),%rax
mov    0x118(%rax),%rax
shl    $0x18,%eax
mov    %eax,-0x4c(%rbp)
mov    -0x10(%rbp),%rax
mov    0x110(%rax),%rax
shl    $0x10,%eax
mov    %eax,-0x50(%rbp)
mov    -0x10(%rbp),%rax
mov    0x108(%rax),%rax
shl    $0x8,%eax
mov    %eax,-0x54(%rbp)
mov    -0x10(%rbp),%rax
mov    0x100(%rax),%rax
mov    %rax,-0x60(%rbp)
mov    -0x10(%rbp),%rax
mov    0xf8(%rax),%rax
mov    $0x38,%ecx
shl    %cl,%eax
mov    %eax,-0x64(%rbp)
mov    -0x10(%rbp),%rax
mov    0xf0(%rax),%rax
mov    $0x30,%ecx
shl    %cl,%eax
mov    %eax,-0x68(%rbp)
mov    -0x10(%rbp),%rax
mov    0xe8(%rax),%rax
mov    $0x28,%ecx
shl    %cl,%eax
mov    %eax,-0x6c(%rbp)
mov    -0x10(%rbp),%rax
mov    0xe0(%rax),%rax
mov    $0x20,%ecx
shl    %cl,%eax
mov    %eax,-0x70(%rbp)
mov    -0x10(%rbp),%rax
mov    0xd8(%rax),%rax
shl    $0x18,%eax
mov    %eax,-0x74(%rbp)
mov    -0x10(%rbp),%rax
mov    0xd0(%rax),%rax
shl    $0x10,%eax
mov    %eax,-0x78(%rbp)
mov    -0x10(%rbp),%rax
mov    0xc8(%rax),%rax
shl    $0x8,%eax
mov    %eax,-0x7c(%rbp)
mov    -0x10(%rbp),%rax
mov    0xc0(%rax),%rax
mov    %rax,-0x88(%rbp)
mov    -0x10(%rbp),%rax
mov    0xb8(%rax),%rax
mov    $0x38,%ecx
shl    %cl,%eax
mov    %eax,-0x8c(%rbp)
mov    -0x10(%rbp),%rax
mov    0xb0(%rax),%rax
mov    $0x30,%ecx
shl    %cl,%eax
mov    %eax,-0x90(%rbp)
mov    -0x10(%rbp),%rax
mov    0xa8(%rax),%rax
mov    $0x28,%ecx
shl    %cl,%eax
mov    %eax,-0x94(%rbp)
mov    -0x10(%rbp),%rax
mov    0xa0(%rax),%rax
mov    $0x20,%ecx
shl    %cl,%eax
mov    %eax,-0x98(%rbp)
mov    -0x10(%rbp),%rax
mov    0x98(%rax),%rax
shl    $0x18,%eax
mov    %eax,-0x9c(%rbp)
mov    -0x10(%rbp),%rax
mov    0x90(%rax),%rax
shl    $0x10,%eax
mov    %eax,-0xa0(%rbp)
mov    -0x10(%rbp),%rax
mov    0x88(%rax),%rax
shl    $0x8,%eax
mov    %eax,-0xa4(%rbp)
mov    -0x10(%rbp),%rax
mov    0x80(%rax),%rax
mov    %rax,-0xb0(%rbp)
mov    -0x10(%rbp),%rax
mov    0x78(%rax),%rax
mov    $0x38,%ecx
shl    %cl,%eax
mov    %eax,-0xb4(%rbp)
mov    -0x10(%rbp),%rax
mov    0x70(%rax),%rax
mov    $0x30,%ecx
shl    %cl,%eax
mov    %eax,-0xb8(%rbp)
mov    -0x10(%rbp),%rax
mov    0x68(%rax),%rax
mov    $0x28,%ecx
shl    %cl,%eax
mov    %eax,-0xbc(%rbp)
mov    -0x10(%rbp),%rax
mov    0x60(%rax),%rax
mov    $0x20,%ecx
shl    %cl,%eax
mov    %eax,-0xc0(%rbp)
mov    -0x10(%rbp),%rax
mov    0x58(%rax),%rax
shl    $0x18,%eax
mov    %eax,-0xc4(%rbp)
mov    -0x10(%rbp),%rax
mov    0x50(%rax),%rax
shl    $0x10,%eax
mov    %eax,-0xc8(%rbp)
mov    -0x10(%rbp),%rax
mov    0x48(%rax),%rax
shl    $0x8,%eax
mov    %eax,-0xcc(%rbp)
mov    -0x10(%rbp),%rax
mov    0x40(%rax),%rax
mov    %rax,-0xd8(%rbp)
mov    -0x10(%rbp),%rax
mov    0x38(%rax),%rax
mov    $0x38,%ecx
shl    %cl,%eax
mov    %eax,-0xdc(%rbp)
mov    -0x10(%rbp),%rax
mov    0x30(%rax),%rax
mov    $0x30,%ecx
shl    %cl,%eax
mov    %eax,-0xe0(%rbp)
mov    -0x10(%rbp),%rax
mov    0x28(%rax),%rax
mov    $0x28,%ecx
shl    %cl,%eax
mov    %eax,-0xe4(%rbp)
mov    -0x10(%rbp),%rax
mov    0x20(%rax),%rax
mov    $0x20,%ecx
shl    %cl,%eax
mov    %eax,-0xe8(%rbp)
mov    -0x10(%rbp),%rax
mov    0x18(%rax),%rax
shl    $0x18,%eax
mov    %eax,-0xec(%rbp)
mov    -0x10(%rbp),%rax
mov    0x10(%rax),%rax
shl    $0x10,%eax
mov    %eax,-0xf0(%rbp)
mov    -0x10(%rbp),%rax
mov    0x8(%rax),%rax
shl    $0x8,%eax
mov    %eax,-0xf4(%rbp)
mov    -0x10(%rbp),%rax
mov    (%rax),%rax
mov    %rax,-0x100(%rbp)
mov    -0xf4(%rbp),%eax
mov    -0x100(%rbp),%rcx
add    %ecx,%eax
mov    %eax,-0x104(%rbp)
mov    -0xf0(%rbp),%eax
add    -0x104(%rbp),%eax
mov    %eax,-0x108(%rbp)
mov    -0xec(%rbp),%eax
add    -0x108(%rbp),%eax
mov    %eax,-0x10c(%rbp)
mov    -0xe8(%rbp),%eax
add    -0x10c(%rbp),%eax
mov    %eax,-0x110(%rbp)
mov    -0xe4(%rbp),%eax
add    -0x110(%rbp),%eax
mov    %eax,-0x114(%rbp)
mov    -0xe0(%rbp),%eax
add    -0x114(%rbp),%eax
mov    %eax,-0x118(%rbp)
mov    -0xdc(%rbp),%eax
add    -0x118(%rbp),%eax
mov    %eax,-0x11c(%rbp)
mov    -0xcc(%rbp),%eax
mov    -0xd8(%rbp),%rcx
add    %ecx,%eax
mov    %eax,-0x120(%rbp)
mov    -0xc8(%rbp),%eax
add    -0x120(%rbp),%eax
mov    %eax,-0x124(%rbp)
mov    -0xc4(%rbp),%eax
add    -0x124(%rbp),%eax
mov    %eax,-0x128(%rbp)
mov    -0xc0(%rbp),%eax
add    -0x128(%rbp),%eax
mov    %eax,-0x12c(%rbp)
mov    -0xbc(%rbp),%eax
add    -0x12c(%rbp),%eax
mov    %eax,-0x130(%rbp)
mov    -0xb8(%rbp),%eax
add    -0x130(%rbp),%eax
mov    %eax,-0x134(%rbp)
mov    -0xb4(%rbp),%eax
add    -0x134(%rbp),%eax
mov    %eax,-0x138(%rbp)
mov    -0xa4(%rbp),%eax
mov    -0xb0(%rbp),%rcx
add    %ecx,%eax
mov    %eax,-0x13c(%rbp)
mov    -0xa0(%rbp),%eax
add    -0x13c(%rbp),%eax
mov    %eax,-0x140(%rbp)
mov    -0x9c(%rbp),%eax
add    -0x140(%rbp),%eax
mov    %eax,-0x144(%rbp)
mov    -0x98(%rbp),%eax
add    -0x144(%rbp),%eax
mov    %eax,-0x148(%rbp)
mov    -0x94(%rbp),%eax
add    -0x148(%rbp),%eax
mov    %eax,-0x14c(%rbp)
mov    -0x90(%rbp),%eax
add    -0x14c(%rbp),%eax
mov    %eax,-0x150(%rbp)
mov    -0x8c(%rbp),%eax
add    -0x150(%rbp),%eax
mov    %eax,-0x154(%rbp)
mov    -0x7c(%rbp),%eax
mov    -0x88(%rbp),%rcx
add    %ecx,%eax
mov    %eax,-0x158(%rbp)
mov    -0x78(%rbp),%eax
add    -0x158(%rbp),%eax
mov    %eax,-0x15c(%rbp)
mov    -0x74(%rbp),%eax
add    -0x15c(%rbp),%eax
mov    %eax,-0x160(%rbp)
mov    -0x70(%rbp),%eax
add    -0x160(%rbp),%eax
mov    %eax,-0x164(%rbp)
mov    -0x6c(%rbp),%eax
add    -0x164(%rbp),%eax
mov    %eax,-0x168(%rbp)
mov    -0x68(%rbp),%eax
add    -0x168(%rbp),%eax
mov    %eax,-0x16c(%rbp)
mov    -0x64(%rbp),%eax
add    -0x16c(%rbp),%eax
mov    %eax,-0x170(%rbp)
mov    -0x54(%rbp),%eax
mov    -0x60(%rbp),%rcx
add    %ecx,%eax
mov    %eax,-0x174(%rbp)
mov    -0x50(%rbp),%eax
add    -0x174(%rbp),%eax
mov    %eax,-0x178(%rbp)
mov    -0x4c(%rbp),%eax
add    -0x178(%rbp),%eax
mov    %eax,-0x17c(%rbp)
mov    -0x48(%rbp),%eax
add    -0x17c(%rbp),%eax
mov    %eax,-0x180(%rbp)
mov    -0x44(%rbp),%eax
add    -0x180(%rbp),%eax
mov    %eax,-0x184(%rbp)
mov    -0x40(%rbp),%eax
add    -0x184(%rbp),%eax
mov    %eax,-0x188(%rbp)
mov    -0x3c(%rbp),%eax
add    -0x188(%rbp),%eax
mov    %eax,-0x18c(%rbp)
mov    -0x2c(%rbp),%eax
mov    -0x38(%rbp),%rcx
add    %ecx,%eax
mov    %eax,-0x190(%rbp)
mov    -0x28(%rbp),%eax
add    -0x190(%rbp),%eax
mov    %eax,-0x194(%rbp)
mov    -0x24(%rbp),%eax
add    -0x194(%rbp),%eax
mov    %eax,-0x198(%rbp)
mov    -0x20(%rbp),%eax
add    -0x198(%rbp),%eax
mov    %eax,-0x19c(%rbp)
mov    -0x1c(%rbp),%eax
add    -0x19c(%rbp),%eax
mov    %eax,-0x1a0(%rbp)
mov    -0x18(%rbp),%eax
add    -0x1a0(%rbp),%eax
mov    %eax,-0x1a4(%rbp)
mov    -0x14(%rbp),%eax
add    -0x1a4(%rbp),%eax
mov    %eax,-0x1a8(%rbp)
mov    -0x11c(%rbp),%ecx
mov    -0x8(%rbp),%rax
mov    %ecx,(%rax)
mov    -0x138(%rbp),%ecx
mov    -0x8(%rbp),%rax
mov    %ecx,0x4(%rax)
mov    -0x154(%rbp),%ecx
mov    -0x8(%rbp),%rax
mov    %ecx,0x8(%rax)
mov    -0x170(%rbp),%ecx
mov    -0x8(%rbp),%rax
mov    %ecx,0xc(%rax)
mov    -0x18c(%rbp),%ecx
mov    -0x8(%rbp),%rax
mov    %ecx,0x10(%rax)
mov    -0x1a8(%rbp),%ecx
mov    -0x8(%rbp),%rax
mov    %ecx,0x14(%rax)
add    $0x128,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<fiat_p384_from_bytes>:
ret

LLVM IR (-O0):
define void @fiat_p384_from_bytes(i32* %0, i64* %1) {
%3 = alloca i32*
%4 = alloca i64*
%5 = alloca i32
%6 = alloca i32
%7 = alloca i32
%8 = alloca i32
%9 = alloca i32
%10 = alloca i32
%11 = alloca i32
%12 = alloca i64
%13 = alloca i32
%14 = alloca i32
%15 = alloca i32
%16 = alloca i32
%17 = alloca i32
%18 = alloca i32
%19 = alloca i32
%20 = alloca i64
%21 = alloca i32
%22 = alloca i32
%23 = alloca i32
%24 = alloca i32
%25 = alloca i32
%26 = alloca i32
%27 = alloca i32
%28 = alloca i64
%29 = alloca i32
%30 = alloca i32
%31 = alloca i32
%32 = alloca i32
%33 = alloca i32
%34 = alloca i32
%35 = alloca i32
%36 = alloca i64
%37 = alloca i32
%38 = alloca i32
%39 = alloca i32
%40 = alloca i32
%41 = alloca i32
%42 = alloca i32
%43 = alloca i32
%44 = alloca i64
%45 = alloca i32
%46 = alloca i32
%47 = alloca i32
%48 = alloca i32
%49 = alloca i32
%50 = alloca i32
%51 = alloca i32
%52 = alloca i64
%53 = alloca i32
%54 = alloca i32
%55 = alloca i32
%56 = alloca i32
%57 = alloca i32
%58 = alloca i32
%59 = alloca i32
%60 = alloca i32
%61 = alloca i32
%62 = alloca i32
%63 = alloca i32
%64 = alloca i32
%65 = alloca i32
%66 = alloca i32
%67 = alloca i32
%68 = alloca i32
%69 = alloca i32
%70 = alloca i32
%71 = alloca i32
%72 = alloca i32
%73 = alloca i32
%74 = alloca i32
%75 = alloca i32
%76 = alloca i32
%77 = alloca i32
%78 = alloca i32
%79 = alloca i32
%80 = alloca i32
%81 = alloca i32
%82 = alloca i32
%83 = alloca i32
%84 = alloca i32
%85 = alloca i32
%86 = alloca i32
%87 = alloca i32
%88 = alloca i32
%89 = alloca i32
%90 = alloca i32
%91 = alloca i32
%92 = alloca i32
%93 = alloca i32
%94 = alloca i32
store i32* %0, i32** %3
store i64* %1, i64** %4
%95 = load i64*, i64** %4
%96 = getelementptr inbounds i64, i64* %95, i64 47
%97 = load i64, i64* %96
%98 = trunc i64 %97 to i32
%99 = shl i32 %98, 56
store i32 %99, i32* %5
%100 = load i64*, i64** %4
%101 = getelementptr inbounds i64, i64* %100, i64 46
%102 = load i64, i64* %101
%103 = trunc i64 %102 to i32
%104 = shl i32 %103, 48
store i32 %104, i32* %6
%105 = load i64*, i64** %4
%106 = getelementptr inbounds i64, i64* %105, i64 45
%107 = load i64, i64* %106
%108 = trunc i64 %107 to i32
%109 = shl i32 %108, 40
store i32 %109, i32* %7
%110 = load i64*, i64** %4
%111 = getelementptr inbounds i64, i64* %110, i64 44
%112 = load i64, i64* %111
%113 = trunc i64 %112 to i32
%114 = shl i32 %113, 32
store i32 %114, i32* %8
%115 = load i64*, i64** %4
%116 = getelementptr inbounds i64, i64* %115, i64 43
%117 = load i64, i64* %116
%118 = trunc i64 %117 to i32
%119 = shl i32 %118, 24
store i32 %119, i32* %9
%120 = load i64*, i64** %4
%121 = getelementptr inbounds i64, i64* %120, i64 42
%122 = load i64, i64* %121
%123 = trunc i64 %122 to i32
%124 = shl i32 %123, 16
store i32 %124, i32* %10
%125 = load i64*, i64** %4
%126 = getelementptr inbounds i64, i64* %125, i64 41
%127 = load i64, i64* %126
%128 = trunc i64 %127 to i32
%129 = shl i32 %128, 8
store i32 %129, i32* %11
%130 = load i64*, i64** %4
%131 = getelementptr inbounds i64, i64* %130, i64 40
%132 = load i64, i64* %131
store i64 %132, i64* %12
%133 = load i64*, i64** %4
%134 = getelementptr inbounds i64, i64* %133, i64 39
%135 = load i64, i64* %134
%136 = trunc i64 %135 to i32
%137 = shl i32 %136, 56
store i32 %137, i32* %13
%138 = load i64*, i64** %4
%139 = getelementptr inbounds i64, i64* %138, i64 38
%140 = load i64, i64* %139
%141 = trunc i64 %140 to i32
%142 = shl i32 %141, 48
store i32 %142, i32* %14
%143 = load i64*, i64** %4
%144 = getelementptr inbounds i64, i64* %143, i64 37
%145 = load i64, i64* %144
%146 = trunc i64 %145 to i32
%147 = shl i32 %146, 40
store i32 %147, i32* %15
%148 = load i64*, i64** %4
%149 = getelementptr inbounds i64, i64* %148, i64 36
%150 = load i64, i64* %149
%151 = trunc i64 %150 to i32
%152 = shl i32 %151, 32
store i32 %152, i32* %16
%153 = load i64*, i64** %4
%154 = getelementptr inbounds i64, i64* %153, i64 35
%155 = load i64, i64* %154
%156 = trunc i64 %155 to i32
%157 = shl i32 %156, 24
store i32 %157, i32* %17
%158 = load i64*, i64** %4
%159 = getelementptr inbounds i64, i64* %158, i64 34
%160 = load i64, i64* %159
%161 = trunc i64 %160 to i32
%162 = shl i32 %161, 16
store i32 %162, i32* %18
%163 = load i64*, i64** %4
%164 = getelementptr inbounds i64, i64* %163, i64 33
%165 = load i64, i64* %164
%166 = trunc i64 %165 to i32
%167 = shl i32 %166, 8
store i32 %167, i32* %19
%168 = load i64*, i64** %4
%169 = getelementptr inbounds i64, i64* %168, i64 32
%170 = load i64, i64* %169
store i64 %170, i64* %20
%171 = load i64*, i64** %4
%172 = getelementptr inbounds i64, i64* %171, i64 31
%173 = load i64, i64* %172
%174 = trunc i64 %173 to i32
%175 = shl i32 %174, 56
store i32 %175, i32* %21
%176 = load i64*, i64** %4
%177 = getelementptr inbounds i64, i64* %176, i64 30
%178 = load i64, i64* %177
%179 = trunc i64 %178 to i32
%180 = shl i32 %179, 48
store i32 %180, i32* %22
%181 = load i64*, i64** %4
%182 = getelementptr inbounds i64, i64* %181, i64 29
%183 = load i64, i64* %182
%184 = trunc i64 %183 to i32
%185 = shl i32 %184, 40
store i32 %185, i32* %23
%186 = load i64*, i64** %4
%187 = getelementptr inbounds i64, i64* %186, i64 28
%188 = load i64, i64* %187
%189 = trunc i64 %188 to i32
%190 = shl i32 %189, 32
store i32 %190, i32* %24
%191 = load i64*, i64** %4
%192 = getelementptr inbounds i64, i64* %191, i64 27
%193 = load i64, i64* %192
%194 = trunc i64 %193 to i32
%195 = shl i32 %194, 24
store i32 %195, i32* %25
%196 = load i64*, i64** %4
%197 = getelementptr inbounds i64, i64* %196, i64 26
%198 = load i64, i64* %197
%199 = trunc i64 %198 to i32
%200 = shl i32 %199, 16
store i32 %200, i32* %26
%201 = load i64*, i64** %4
%202 = getelementptr inbounds i64, i64* %201, i64 25
%203 = load i64, i64* %202
%204 = trunc i64 %203 to i32
%205 = shl i32 %204, 8
store i32 %205, i32* %27
%206 = load i64*, i64** %4
%207 = getelementptr inbounds i64, i64* %206, i64 24
%208 = load i64, i64* %207
store i64 %208, i64* %28
%209 = load i64*, i64** %4
%210 = getelementptr inbounds i64, i64* %209, i64 23
%211 = load i64, i64* %210
%212 = trunc i64 %211 to i32
%213 = shl i32 %212, 56
store i32 %213, i32* %29
%214 = load i64*, i64** %4
%215 = getelementptr inbounds i64, i64* %214, i64 22
%216 = load i64, i64* %215
%217 = trunc i64 %216 to i32
%218 = shl i32 %217, 48
store i32 %218, i32* %30
%219 = load i64*, i64** %4
%220 = getelementptr inbounds i64, i64* %219, i64 21
%221 = load i64, i64* %220
%222 = trunc i64 %221 to i32
%223 = shl i32 %222, 40
store i32 %223, i32* %31
%224 = load i64*, i64** %4
%225 = getelementptr inbounds i64, i64* %224, i64 20
%226 = load i64, i64* %225
%227 = trunc i64 %226 to i32
%228 = shl i32 %227, 32
store i32 %228, i32* %32
%229 = load i64*, i64** %4
%230 = getelementptr inbounds i64, i64* %229, i64 19
%231 = load i64, i64* %230
%232 = trunc i64 %231 to i32
%233 = shl i32 %232, 24
store i32 %233, i32* %33
%234 = load i64*, i64** %4
%235 = getelementptr inbounds i64, i64* %234, i64 18
%236 = load i64, i64* %235
%237 = trunc i64 %236 to i32
%238 = shl i32 %237, 16
store i32 %238, i32* %34
%239 = load i64*, i64** %4
%240 = getelementptr inbounds i64, i64* %239, i64 17
%241 = load i64, i64* %240
%242 = trunc i64 %241 to i32
%243 = shl i32 %242, 8
store i32 %243, i32* %35
%244 = load i64*, i64** %4
%245 = getelementptr inbounds i64, i64* %244, i64 16
%246 = load i64, i64* %245
store i64 %246, i64* %36
%247 = load i64*, i64** %4
%248 = getelementptr inbounds i64, i64* %247, i64 15
%249 = load i64, i64* %248
%250 = trunc i64 %249 to i32
%251 = shl i32 %250, 56
store i32 %251, i32* %37
%252 = load i64*, i64** %4
%253 = getelementptr inbounds i64, i64* %252, i64 14
%254 = load i64, i64* %253
%255 = trunc i64 %254 to i32
%256 = shl i32 %255, 48
store i32 %256, i32* %38
%257 = load i64*, i64** %4
%258 = getelementptr inbounds i64, i64* %257, i64 13
%259 = load i64, i64* %258
%260 = trunc i64 %259 to i32
%261 = shl i32 %260, 40
store i32 %261, i32* %39
%262 = load i64*, i64** %4
%263 = getelementptr inbounds i64, i64* %262, i64 12
%264 = load i64, i64* %263
%265 = trunc i64 %264 to i32
%266 = shl i32 %265, 32
store i32 %266, i32* %40
%267 = load i64*, i64** %4
%268 = getelementptr inbounds i64, i64* %267, i64 11
%269 = load i64, i64* %268
%270 = trunc i64 %269 to i32
%271 = shl i32 %270, 24
store i32 %271, i32* %41
%272 = load i64*, i64** %4
%273 = getelementptr inbounds i64, i64* %272, i64 10
%274 = load i64, i64* %273
%275 = trunc i64 %274 to i32
%276 = shl i32 %275, 16
store i32 %276, i32* %42
%277 = load i64*, i64** %4
%278 = getelementptr inbounds i64, i64* %277, i64 9
%279 = load i64, i64* %278
%280 = trunc i64 %279 to i32
%281 = shl i32 %280, 8
store i32 %281, i32* %43
%282 = load i64*, i64** %4
%283 = getelementptr inbounds i64, i64* %282, i64 8
%284 = load i64, i64* %283
store i64 %284, i64* %44
%285 = load i64*, i64** %4
%286 = getelementptr inbounds i64, i64* %285, i64 7
%287 = load i64, i64* %286
%288 = trunc i64 %287 to i32
%289 = shl i32 %288, 56
store i32 %289, i32* %45
%290 = load i64*, i64** %4
%291 = getelementptr inbounds i64, i64* %290, i64 6
%292 = load i64, i64* %291
%293 = trunc i64 %292 to i32
%294 = shl i32 %293, 48
store i32 %294, i32* %46
%295 = load i64*, i64** %4
%296 = getelementptr inbounds i64, i64* %295, i64 5
%297 = load i64, i64* %296
%298 = trunc i64 %297 to i32
%299 = shl i32 %298, 40
store i32 %299, i32* %47
%300 = load i64*, i64** %4
%301 = getelementptr inbounds i64, i64* %300, i64 4
%302 = load i64, i64* %301
%303 = trunc i64 %302 to i32
%304 = shl i32 %303, 32
store i32 %304, i32* %48
%305 = load i64*, i64** %4
%306 = getelementptr inbounds i64, i64* %305, i64 3
%307 = load i64, i64* %306
%308 = trunc i64 %307 to i32
%309 = shl i32 %308, 24
store i32 %309, i32* %49
%310 = load i64*, i64** %4
%311 = getelementptr inbounds i64, i64* %310, i64 2
%312 = load i64, i64* %311
%313 = trunc i64 %312 to i32
%314 = shl i32 %313, 16
store i32 %314, i32* %50
%315 = load i64*, i64** %4
%316 = getelementptr inbounds i64, i64* %315, i64 1
%317 = load i64, i64* %316
%318 = trunc i64 %317 to i32
%319 = shl i32 %318, 8
store i32 %319, i32* %51
%320 = load i64*, i64** %4
%321 = getelementptr inbounds i64, i64* %320, i64 0
%322 = load i64, i64* %321
store i64 %322, i64* %52
%323 = load i32, i32* %51
%324 = load i64, i64* %52
%325 = trunc i64 %324 to i32
%326 = add nsw i32 %323, %325
store i32 %326, i32* %53
%327 = load i32, i32* %50
%328 = load i32, i32* %53
%329 = add nsw i32 %327, %328
store i32 %329, i32* %54
%330 = load i32, i32* %49
%331 = load i32, i32* %54
%332 = add nsw i32 %330, %331
store i32 %332, i32* %55
%333 = load i32, i32* %48
%334 = load i32, i32* %55
%335 = add nsw i32 %333, %334
store i32 %335, i32* %56
%336 = load i32, i32* %47
%337 = load i32, i32* %56
%338 = add nsw i32 %336, %337
store i32 %338, i32* %57
%339 = load i32, i32* %46
%340 = load i32, i32* %57
%341 = add nsw i32 %339, %340
store i32 %341, i32* %58
%342 = load i32, i32* %45
%343 = load i32, i32* %58
%344 = add nsw i32 %342, %343
store i32 %344, i32* %59
%345 = load i32, i32* %43
%346 = load i64, i64* %44
%347 = trunc i64 %346 to i32
%348 = add nsw i32 %345, %347
store i32 %348, i32* %60
%349 = load i32, i32* %42
%350 = load i32, i32* %60
%351 = add nsw i32 %349, %350
store i32 %351, i32* %61
%352 = load i32, i32* %41
%353 = load i32, i32* %61
%354 = add nsw i32 %352, %353
store i32 %354, i32* %62
%355 = load i32, i32* %40
%356 = load i32, i32* %62
%357 = add nsw i32 %355, %356
store i32 %357, i32* %63
%358 = load i32, i32* %39
%359 = load i32, i32* %63
%360 = add nsw i32 %358, %359
store i32 %360, i32* %64
%361 = load i32, i32* %38
%362 = load i32, i32* %64
%363 = add nsw i32 %361, %362
store i32 %363, i32* %65
%364 = load i32, i32* %37
%365 = load i32, i32* %65
%366 = add nsw i32 %364, %365
store i32 %366, i32* %66
%367 = load i32, i32* %35
%368 = load i64, i64* %36
%369 = trunc i64 %368 to i32
%370 = add nsw i32 %367, %369
store i32 %370, i32* %67
%371 = load i32, i32* %34
%372 = load i32, i32* %67
%373 = add nsw i32 %371, %372
store i32 %373, i32* %68
%374 = load i32, i32* %33
%375 = load i32, i32* %68
%376 = add nsw i32 %374, %375
store i32 %376, i32* %69
%377 = load i32, i32* %32
%378 = load i32, i32* %69
%379 = add nsw i32 %377, %378
store i32 %379, i32* %70
%380 = load i32, i32* %31
%381 = load i32, i32* %70
%382 = add nsw i32 %380, %381
store i32 %382, i32* %71
%383 = load i32, i32* %30
%384 = load i32, i32* %71
%385 = add nsw i32 %383, %384
store i32 %385, i32* %72
%386 = load i32, i32* %29
%387 = load i32, i32* %72
%388 = add nsw i32 %386, %387
store i32 %388, i32* %73
%389 = load i32, i32* %27
%390 = load i64, i64* %28
%391 = trunc i64 %390 to i32
%392 = add nsw i32 %389, %391
store i32 %392, i32* %74
%393 = load i32, i32* %26
%394 = load i32, i32* %74
%395 = add nsw i32 %393, %394
store i32 %395, i32* %75
%396 = load i32, i32* %25
%397 = load i32, i32* %75
%398 = add nsw i32 %396, %397
store i32 %398, i32* %76
%399 = load i32, i32* %24
%400 = load i32, i32* %76
%401 = add nsw i32 %399, %400
store i32 %401, i32* %77
%402 = load i32, i32* %23
%403 = load i32, i32* %77
%404 = add nsw i32 %402, %403
store i32 %404, i32* %78
%405 = load i32, i32* %22
%406 = load i32, i32* %78
%407 = add nsw i32 %405, %406
store i32 %407, i32* %79
%408 = load i32, i32* %21
%409 = load i32, i32* %79
%410 = add nsw i32 %408, %409
store i32 %410, i32* %80
%411 = load i32, i32* %19
%412 = load i64, i64* %20
%413 = trunc i64 %412 to i32
%414 = add nsw i32 %411, %413
store i32 %414, i32* %81
%415 = load i32, i32* %18
%416 = load i32, i32* %81
%417 = add nsw i32 %415, %416
store i32 %417, i32* %82
%418 = load i32, i32* %17
%419 = load i32, i32* %82
%420 = add nsw i32 %418, %419
store i32 %420, i32* %83
%421 = load i32, i32* %16
%422 = load i32, i32* %83
%423 = add nsw i32 %421, %422
store i32 %423, i32* %84
%424 = load i32, i32* %15
%425 = load i32, i32* %84
%426 = add nsw i32 %424, %425
store i32 %426, i32* %85
%427 = load i32, i32* %14
%428 = load i32, i32* %85
%429 = add nsw i32 %427, %428
store i32 %429, i32* %86
%430 = load i32, i32* %13
%431 = load i32, i32* %86
%432 = add nsw i32 %430, %431
store i32 %432, i32* %87
%433 = load i32, i32* %11
%434 = load i64, i64* %12
%435 = trunc i64 %434 to i32
%436 = add nsw i32 %433, %435
store i32 %436, i32* %88
%437 = load i32, i32* %10
%438 = load i32, i32* %88
%439 = add nsw i32 %437, %438
store i32 %439, i32* %89
%440 = load i32, i32* %9
%441 = load i32, i32* %89
%442 = add nsw i32 %440, %441
store i32 %442, i32* %90
%443 = load i32, i32* %8
%444 = load i32, i32* %90
%445 = add nsw i32 %443, %444
store i32 %445, i32* %91
%446 = load i32, i32* %7
%447 = load i32, i32* %91
%448 = add nsw i32 %446, %447
store i32 %448, i32* %92
%449 = load i32, i32* %6
%450 = load i32, i32* %92
%451 = add nsw i32 %449, %450
store i32 %451, i32* %93
%452 = load i32, i32* %5
%453 = load i32, i32* %93
%454 = add nsw i32 %452, %453
store i32 %454, i32* %94
%455 = load i32, i32* %59
%456 = load i32*, i32** %3
%457 = getelementptr inbounds i32, i32* %456, i64 0
store i32 %455, i32* %457
%458 = load i32, i32* %66
%459 = load i32*, i32** %3
%460 = getelementptr inbounds i32, i32* %459, i64 1
store i32 %458, i32* %460
%461 = load i32, i32* %73
%462 = load i32*, i32** %3
%463 = getelementptr inbounds i32, i32* %462, i64 2
store i32 %461, i32* %463
%464 = load i32, i32* %80
%465 = load i32*, i32** %3
%466 = getelementptr inbounds i32, i32* %465, i64 3
store i32 %464, i32* %466
%467 = load i32, i32* %87
%468 = load i32*, i32** %3
%469 = getelementptr inbounds i32, i32* %468, i64 4
store i32 %467, i32* %469
%470 = load i32, i32* %94
%471 = load i32*, i32** %3
%472 = getelementptr inbounds i32, i32* %471, i64 5
store i32 %470, i32* %472
ret void
}

LLVM IR (-O2):
define void @fiat_p384_from_bytes(i32* nocapture %0, i64* nocapture %1) {
ret void
}