#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*/ pic32_xferinstruction(int);
void pic32_bmx(void) {
  pic32_xferinstruction(0x3c04bf88);
  pic32_xferinstruction(0x34842000);
  pic32_xferinstruction(0x3c05001f);
  pic32_xferinstruction(0x34a50040);
  pic32_xferinstruction(0xac850000);
  pic32_xferinstruction(0x34050800);
  pic32_xferinstruction(0xac850010);
  pic32_xferinstruction(0x8C850040);
  pic32_xferinstruction(0xac850020);
  pic32_xferinstruction(0xac850030);
}


x86 assembly (clang, -O0):
<pic32_bmx>:
push   %rbp
mov    %rsp,%rbp
mov    $0x3c04bf88,%edi
call   1030 <pic32_xferinstruction@plt>
mov    $0x34842000,%edi
call   1030 <pic32_xferinstruction@plt>
mov    $0x3c05001f,%edi
call   1030 <pic32_xferinstruction@plt>
mov    $0x34a50040,%edi
call   1030 <pic32_xferinstruction@plt>
mov    $0xac850000,%edi
call   1030 <pic32_xferinstruction@plt>
mov    $0x34050800,%edi
call   1030 <pic32_xferinstruction@plt>
mov    $0xac850010,%edi
call   1030 <pic32_xferinstruction@plt>
mov    $0x8c850040,%edi
call   1030 <pic32_xferinstruction@plt>
mov    $0xac850020,%edi
call   1030 <pic32_xferinstruction@plt>
mov    $0xac850030,%edi
call   1030 <pic32_xferinstruction@plt>
pop    %rbp
ret

x86 assembly (clang, -O2):
<pic32_bmx>:
push   %rax
mov    $0x3c04bf88,%edi
call   1030 <pic32_xferinstruction@plt>
mov    $0x34842000,%edi
call   1030 <pic32_xferinstruction@plt>
mov    $0x3c05001f,%edi
call   1030 <pic32_xferinstruction@plt>
mov    $0x34a50040,%edi
call   1030 <pic32_xferinstruction@plt>
mov    $0xac850000,%edi
call   1030 <pic32_xferinstruction@plt>
mov    $0x34050800,%edi
call   1030 <pic32_xferinstruction@plt>
mov    $0xac850010,%edi
call   1030 <pic32_xferinstruction@plt>
mov    $0x8c850040,%edi
call   1030 <pic32_xferinstruction@plt>
mov    $0xac850020,%edi
call   1030 <pic32_xferinstruction@plt>
mov    $0xac850030,%edi
pop    %rax
jmp    1030 <pic32_xferinstruction@plt>

LLVM IR (-O0):
define void @pic32_bmx() {
%1 = call i32 @pic32_xferinstruction(i32 1006944136)
%2 = call i32 @pic32_xferinstruction(i32 881074176)
%3 = call i32 @pic32_xferinstruction(i32 1006960671)
%4 = call i32 @pic32_xferinstruction(i32 883228736)
%5 = call i32 @pic32_xferinstruction(i32 -1400569856)
%6 = call i32 @pic32_xferinstruction(i32 872744960)
%7 = call i32 @pic32_xferinstruction(i32 -1400569840)
%8 = call i32 @pic32_xferinstruction(i32 -1937440704)
%9 = call i32 @pic32_xferinstruction(i32 -1400569824)
%10 = call i32 @pic32_xferinstruction(i32 -1400569808)
ret void
}

LLVM IR (-O2):
define void @pic32_bmx() {
%1 = tail call i32 @pic32_xferinstruction(i32 1006944136)
%2 = tail call i32 @pic32_xferinstruction(i32 881074176)
%3 = tail call i32 @pic32_xferinstruction(i32 1006960671)
%4 = tail call i32 @pic32_xferinstruction(i32 883228736)
%5 = tail call i32 @pic32_xferinstruction(i32 -1400569856)
%6 = tail call i32 @pic32_xferinstruction(i32 872744960)
%7 = tail call i32 @pic32_xferinstruction(i32 -1400569840)
%8 = tail call i32 @pic32_xferinstruction(i32 -1937440704)
%9 = tail call i32 @pic32_xferinstruction(i32 -1400569824)
%10 = tail call i32 @pic32_xferinstruction(i32 -1400569808)
ret void
}