#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*/ write_cmd(int, int);
void wm9714_init(void) {
  write_cmd(0x0c, 0);
  write_cmd(0x5c, 0);
  write_cmd(0x2a, 1);
  write_cmd(0x2c, 0xac44);
  write_cmd(0x1c, (1 << 12) | (1 << 9) | (1 << 7) | (1 << 5));
  write_cmd(0x04, (0xf << 8) | (0xf));
  write_cmd(0x02, (0x9 << 8) | (0x9));
  write_cmd(0x6, 0);
  write_cmd(0x26, 0);
  write_cmd(0x3c, 0);
  write_cmd(0x3e, 3 << 9);
  write_cmd(0x24, (1 << 4));
}


x86 assembly (clang, -O0):
<wm9714_init>:
push   %rbp
mov    %rsp,%rbp
mov    $0xc,%edi
xor    %esi,%esi
call   1030 <write_cmd@plt>
mov    $0x5c,%edi
xor    %esi,%esi
call   1030 <write_cmd@plt>
mov    $0x2a,%edi
mov    $0x1,%esi
call   1030 <write_cmd@plt>
mov    $0x2c,%edi
mov    $0xac44,%esi
call   1030 <write_cmd@plt>
mov    $0x1c,%edi
mov    $0x12a0,%esi
call   1030 <write_cmd@plt>
mov    $0x4,%edi
mov    $0xf0f,%esi
call   1030 <write_cmd@plt>
mov    $0x2,%edi
mov    $0x909,%esi
call   1030 <write_cmd@plt>
mov    $0x6,%edi
xor    %esi,%esi
call   1030 <write_cmd@plt>
mov    $0x26,%edi
xor    %esi,%esi
call   1030 <write_cmd@plt>
mov    $0x3c,%edi
xor    %esi,%esi
call   1030 <write_cmd@plt>
mov    $0x3e,%edi
mov    $0x600,%esi
call   1030 <write_cmd@plt>
mov    $0x24,%edi
mov    $0x10,%esi
call   1030 <write_cmd@plt>
pop    %rbp
ret

x86 assembly (clang, -O2):
<wm9714_init>:
push   %rax
mov    $0xc,%edi
xor    %esi,%esi
call   1030 <write_cmd@plt>
mov    $0x5c,%edi
xor    %esi,%esi
call   1030 <write_cmd@plt>
mov    $0x2a,%edi
mov    $0x1,%esi
call   1030 <write_cmd@plt>
mov    $0x2c,%edi
mov    $0xac44,%esi
call   1030 <write_cmd@plt>
mov    $0x1c,%edi
mov    $0x12a0,%esi
call   1030 <write_cmd@plt>
mov    $0x4,%edi
mov    $0xf0f,%esi
call   1030 <write_cmd@plt>
mov    $0x2,%edi
mov    $0x909,%esi
call   1030 <write_cmd@plt>
mov    $0x6,%edi
xor    %esi,%esi
call   1030 <write_cmd@plt>
mov    $0x26,%edi
xor    %esi,%esi
call   1030 <write_cmd@plt>
mov    $0x3c,%edi
xor    %esi,%esi
call   1030 <write_cmd@plt>
mov    $0x3e,%edi
mov    $0x600,%esi
call   1030 <write_cmd@plt>
mov    $0x24,%edi
mov    $0x10,%esi
pop    %rax
jmp    1030 <write_cmd@plt>

LLVM IR (-O0):
define void @wm9714_init() {
%1 = call i32 @write_cmd(i32 12, i32 0)
%2 = call i32 @write_cmd(i32 92, i32 0)
%3 = call i32 @write_cmd(i32 42, i32 1)
%4 = call i32 @write_cmd(i32 44, i32 44100)
%5 = call i32 @write_cmd(i32 28, i32 4768)
%6 = call i32 @write_cmd(i32 4, i32 3855)
%7 = call i32 @write_cmd(i32 2, i32 2313)
%8 = call i32 @write_cmd(i32 6, i32 0)
%9 = call i32 @write_cmd(i32 38, i32 0)
%10 = call i32 @write_cmd(i32 60, i32 0)
%11 = call i32 @write_cmd(i32 62, i32 1536)
%12 = call i32 @write_cmd(i32 36, i32 16)
ret void
}

LLVM IR (-O2):
define void @wm9714_init() {
%1 = tail call i32 @write_cmd(i32 12, i32 0)
%2 = tail call i32 @write_cmd(i32 92, i32 0)
%3 = tail call i32 @write_cmd(i32 42, i32 1)
%4 = tail call i32 @write_cmd(i32 44, i32 44100)
%5 = tail call i32 @write_cmd(i32 28, i32 4768)
%6 = tail call i32 @write_cmd(i32 4, i32 3855)
%7 = tail call i32 @write_cmd(i32 2, i32 2313)
%8 = tail call i32 @write_cmd(i32 6, i32 0)
%9 = tail call i32 @write_cmd(i32 38, i32 0)
%10 = tail call i32 @write_cmd(i32 60, i32 0)
%11 = tail call i32 @write_cmd(i32 62, i32 1536)
%12 = tail call i32 @write_cmd(i32 36, i32 16)
ret void
}