#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 */
struct Motor {
  int dummy;
};

/* Variables and functions */
int /*<<< orphan*/ initMotor(int, int, int, int, struct Motor **);
void initAllMaxMinMotors(struct Motor **motors) {
  initMotor(1, 200, 500, 1, motors);
  initMotor(2, 506, 805, 1, motors);
  initMotor(3, 202, 823, 1, motors);
  initMotor(4, 222, 828, -1, motors);
  initMotor(5, 300, 750, 1, motors);
  initMotor(6, 10, 750, 1, motors);
  initMotor(7, 232, 800, 1, motors);
  initMotor(8, 195, 806, 1, motors);
  initMotor(9, 208, 825, -1, motors);
  initMotor(10, 200, 815, 1, motors);
  initMotor(11, 10, 700, 1, motors);
  initMotor(12, 250, 800, 1, motors);
  initMotor(13, 523, 810, 1, motors);
  initMotor(14, 212, 507, 1, motors);
  initMotor(15, 225, 795, -1, motors);
  initMotor(16, 196, 804, 1, motors);
  initMotor(17, 250, 750, 1, motors);
  initMotor(18, 250, 850, 1, motors);
}


x86 assembly (clang, -O0):
<initAllMaxMinMotors>:
push   %rbp
mov    %rsp,%rbp
sub    $0x10,%rsp
mov    %rdi,-0x8(%rbp)
mov    -0x8(%rbp),%r8
mov    $0x1,%ecx
mov    $0xc8,%esi
mov    $0x1f4,%edx
mov    %ecx,%edi
call   1030 <initMotor@plt>
mov    -0x8(%rbp),%r8
mov    $0x2,%edi
mov    $0x1fa,%esi
mov    $0x325,%edx
mov    $0x1,%ecx
call   1030 <initMotor@plt>
mov    -0x8(%rbp),%r8
mov    $0x3,%edi
mov    $0xca,%esi
mov    $0x337,%edx
mov    $0x1,%ecx
call   1030 <initMotor@plt>
mov    -0x8(%rbp),%r8
mov    $0x4,%edi
mov    $0xde,%esi
mov    $0x33c,%edx
mov    $0xffffffff,%ecx
call   1030 <initMotor@plt>
mov    -0x8(%rbp),%r8
mov    $0x5,%edi
mov    $0x12c,%esi
mov    $0x2ee,%edx
mov    $0x1,%ecx
call   1030 <initMotor@plt>
mov    -0x8(%rbp),%r8
mov    $0x6,%edi
mov    $0xa,%esi
mov    $0x2ee,%edx
mov    $0x1,%ecx
call   1030 <initMotor@plt>
mov    -0x8(%rbp),%r8
mov    $0x7,%edi
mov    $0xe8,%esi
mov    $0x320,%edx
mov    $0x1,%ecx
call   1030 <initMotor@plt>
mov    -0x8(%rbp),%r8
mov    $0x8,%edi
mov    $0xc3,%esi
mov    $0x326,%edx
mov    $0x1,%ecx
call   1030 <initMotor@plt>
mov    -0x8(%rbp),%r8
mov    $0x9,%edi
mov    $0xd0,%esi
mov    $0x339,%edx
mov    $0xffffffff,%ecx
call   1030 <initMotor@plt>
mov    -0x8(%rbp),%r8
mov    $0xa,%edi
mov    $0xc8,%esi
mov    $0x32f,%edx
mov    $0x1,%ecx
call   1030 <initMotor@plt>
mov    -0x8(%rbp),%r8
mov    $0xb,%edi
mov    $0xa,%esi
mov    $0x2bc,%edx
mov    $0x1,%ecx
call   1030 <initMotor@plt>
mov    -0x8(%rbp),%r8
mov    $0xc,%edi
mov    $0xfa,%esi
mov    $0x320,%edx
mov    $0x1,%ecx
call   1030 <initMotor@plt>
mov    -0x8(%rbp),%r8
mov    $0xd,%edi
mov    $0x20b,%esi
mov    $0x32a,%edx
mov    $0x1,%ecx
call   1030 <initMotor@plt>
mov    -0x8(%rbp),%r8
mov    $0xe,%edi
mov    $0xd4,%esi
mov    $0x1fb,%edx
mov    $0x1,%ecx
call   1030 <initMotor@plt>
mov    -0x8(%rbp),%r8
mov    $0xf,%edi
mov    $0xe1,%esi
mov    $0x31b,%edx
mov    $0xffffffff,%ecx
call   1030 <initMotor@plt>
mov    -0x8(%rbp),%r8
mov    $0x10,%edi
mov    $0xc4,%esi
mov    $0x324,%edx
mov    $0x1,%ecx
call   1030 <initMotor@plt>
mov    -0x8(%rbp),%r8
mov    $0x11,%edi
mov    $0xfa,%esi
mov    $0x2ee,%edx
mov    $0x1,%ecx
call   1030 <initMotor@plt>
mov    -0x8(%rbp),%r8
mov    $0x12,%edi
mov    $0xfa,%esi
mov    $0x352,%edx
mov    $0x1,%ecx
call   1030 <initMotor@plt>
add    $0x10,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<initAllMaxMinMotors>:
push   %rbx
mov    %rdi,%rbx
mov    $0x1,%edi
mov    $0xc8,%esi
mov    $0x1f4,%edx
mov    $0x1,%ecx
mov    %rbx,%r8
call   1030 <initMotor@plt>
mov    $0x2,%edi
mov    $0x1fa,%esi
mov    $0x325,%edx
mov    $0x1,%ecx
mov    %rbx,%r8
call   1030 <initMotor@plt>
mov    $0x3,%edi
mov    $0xca,%esi
mov    $0x337,%edx
mov    $0x1,%ecx
mov    %rbx,%r8
call   1030 <initMotor@plt>
mov    $0x4,%edi
mov    $0xde,%esi
mov    $0x33c,%edx
mov    $0xffffffff,%ecx
mov    %rbx,%r8
call   1030 <initMotor@plt>
mov    $0x5,%edi
mov    $0x12c,%esi
mov    $0x2ee,%edx
mov    $0x1,%ecx
mov    %rbx,%r8
call   1030 <initMotor@plt>
mov    $0x6,%edi
mov    $0xa,%esi
mov    $0x2ee,%edx
mov    $0x1,%ecx
mov    %rbx,%r8
call   1030 <initMotor@plt>
mov    $0x7,%edi
mov    $0xe8,%esi
mov    $0x320,%edx
mov    $0x1,%ecx
mov    %rbx,%r8
call   1030 <initMotor@plt>
mov    $0x8,%edi
mov    $0xc3,%esi
mov    $0x326,%edx
mov    $0x1,%ecx
mov    %rbx,%r8
call   1030 <initMotor@plt>
mov    $0x9,%edi
mov    $0xd0,%esi
mov    $0x339,%edx
mov    $0xffffffff,%ecx
mov    %rbx,%r8
call   1030 <initMotor@plt>
mov    $0xa,%edi
mov    $0xc8,%esi
mov    $0x32f,%edx
mov    $0x1,%ecx
mov    %rbx,%r8
call   1030 <initMotor@plt>
mov    $0xb,%edi
mov    $0xa,%esi
mov    $0x2bc,%edx
mov    $0x1,%ecx
mov    %rbx,%r8
call   1030 <initMotor@plt>
mov    $0xc,%edi
mov    $0xfa,%esi
mov    $0x320,%edx
mov    $0x1,%ecx
mov    %rbx,%r8
call   1030 <initMotor@plt>
mov    $0xd,%edi
mov    $0x20b,%esi
mov    $0x32a,%edx
mov    $0x1,%ecx
mov    %rbx,%r8
call   1030 <initMotor@plt>
mov    $0xe,%edi
mov    $0xd4,%esi
mov    $0x1fb,%edx
mov    $0x1,%ecx
mov    %rbx,%r8
call   1030 <initMotor@plt>
mov    $0xf,%edi
mov    $0xe1,%esi
mov    $0x31b,%edx
mov    $0xffffffff,%ecx
mov    %rbx,%r8
call   1030 <initMotor@plt>
mov    $0x10,%edi
mov    $0xc4,%esi
mov    $0x324,%edx
mov    $0x1,%ecx
mov    %rbx,%r8
call   1030 <initMotor@plt>
mov    $0x11,%edi
mov    $0xfa,%esi
mov    $0x2ee,%edx
mov    $0x1,%ecx
mov    %rbx,%r8
call   1030 <initMotor@plt>
mov    $0x12,%edi
mov    $0xfa,%esi
mov    $0x352,%edx
mov    $0x1,%ecx
mov    %rbx,%r8
pop    %rbx
jmp    1030 <initMotor@plt>

LLVM IR (-O0):
%struct.Motor = type { i32 }
define void @initAllMaxMinMotors(%struct.Motor** %0) {
%2 = alloca %struct.Motor**
store %struct.Motor** %0, %struct.Motor*** %2
%3 = load %struct.Motor**, %struct.Motor*** %2
%4 = call i32 @initMotor(i32 1, i32 200, i32 500, i32 1, %struct.Motor** %3)
%5 = load %struct.Motor**, %struct.Motor*** %2
%6 = call i32 @initMotor(i32 2, i32 506, i32 805, i32 1, %struct.Motor** %5)
%7 = load %struct.Motor**, %struct.Motor*** %2
%8 = call i32 @initMotor(i32 3, i32 202, i32 823, i32 1, %struct.Motor** %7)
%9 = load %struct.Motor**, %struct.Motor*** %2
%10 = call i32 @initMotor(i32 4, i32 222, i32 828, i32 -1, %struct.Motor** %9)
%11 = load %struct.Motor**, %struct.Motor*** %2
%12 = call i32 @initMotor(i32 5, i32 300, i32 750, i32 1, %struct.Motor** %11)
%13 = load %struct.Motor**, %struct.Motor*** %2
%14 = call i32 @initMotor(i32 6, i32 10, i32 750, i32 1, %struct.Motor** %13)
%15 = load %struct.Motor**, %struct.Motor*** %2
%16 = call i32 @initMotor(i32 7, i32 232, i32 800, i32 1, %struct.Motor** %15)
%17 = load %struct.Motor**, %struct.Motor*** %2
%18 = call i32 @initMotor(i32 8, i32 195, i32 806, i32 1, %struct.Motor** %17)
%19 = load %struct.Motor**, %struct.Motor*** %2
%20 = call i32 @initMotor(i32 9, i32 208, i32 825, i32 -1, %struct.Motor** %19)
%21 = load %struct.Motor**, %struct.Motor*** %2
%22 = call i32 @initMotor(i32 10, i32 200, i32 815, i32 1, %struct.Motor** %21)
%23 = load %struct.Motor**, %struct.Motor*** %2
%24 = call i32 @initMotor(i32 11, i32 10, i32 700, i32 1, %struct.Motor** %23)
%25 = load %struct.Motor**, %struct.Motor*** %2
%26 = call i32 @initMotor(i32 12, i32 250, i32 800, i32 1, %struct.Motor** %25)
%27 = load %struct.Motor**, %struct.Motor*** %2
%28 = call i32 @initMotor(i32 13, i32 523, i32 810, i32 1, %struct.Motor** %27)
%29 = load %struct.Motor**, %struct.Motor*** %2
%30 = call i32 @initMotor(i32 14, i32 212, i32 507, i32 1, %struct.Motor** %29)
%31 = load %struct.Motor**, %struct.Motor*** %2
%32 = call i32 @initMotor(i32 15, i32 225, i32 795, i32 -1, %struct.Motor** %31)
%33 = load %struct.Motor**, %struct.Motor*** %2
%34 = call i32 @initMotor(i32 16, i32 196, i32 804, i32 1, %struct.Motor** %33)
%35 = load %struct.Motor**, %struct.Motor*** %2
%36 = call i32 @initMotor(i32 17, i32 250, i32 750, i32 1, %struct.Motor** %35)
%37 = load %struct.Motor**, %struct.Motor*** %2
%38 = call i32 @initMotor(i32 18, i32 250, i32 850, i32 1, %struct.Motor** %37)
ret void
}

LLVM IR (-O2):
%struct.Motor = type { i32 }
define void @initAllMaxMinMotors(%struct.Motor** %0) {
%2 = tail call i32 @initMotor(i32 1, i32 200, i32 500, i32 1, %struct.Motor** %0)
%3 = tail call i32 @initMotor(i32 2, i32 506, i32 805, i32 1, %struct.Motor** %0)
%4 = tail call i32 @initMotor(i32 3, i32 202, i32 823, i32 1, %struct.Motor** %0)
%5 = tail call i32 @initMotor(i32 4, i32 222, i32 828, i32 -1, %struct.Motor** %0)
%6 = tail call i32 @initMotor(i32 5, i32 300, i32 750, i32 1, %struct.Motor** %0)
%7 = tail call i32 @initMotor(i32 6, i32 10, i32 750, i32 1, %struct.Motor** %0)
%8 = tail call i32 @initMotor(i32 7, i32 232, i32 800, i32 1, %struct.Motor** %0)
%9 = tail call i32 @initMotor(i32 8, i32 195, i32 806, i32 1, %struct.Motor** %0)
%10 = tail call i32 @initMotor(i32 9, i32 208, i32 825, i32 -1, %struct.Motor** %0)
%11 = tail call i32 @initMotor(i32 10, i32 200, i32 815, i32 1, %struct.Motor** %0)
%12 = tail call i32 @initMotor(i32 11, i32 10, i32 700, i32 1, %struct.Motor** %0)
%13 = tail call i32 @initMotor(i32 12, i32 250, i32 800, i32 1, %struct.Motor** %0)
%14 = tail call i32 @initMotor(i32 13, i32 523, i32 810, i32 1, %struct.Motor** %0)
%15 = tail call i32 @initMotor(i32 14, i32 212, i32 507, i32 1, %struct.Motor** %0)
%16 = tail call i32 @initMotor(i32 15, i32 225, i32 795, i32 -1, %struct.Motor** %0)
%17 = tail call i32 @initMotor(i32 16, i32 196, i32 804, i32 1, %struct.Motor** %0)
%18 = tail call i32 @initMotor(i32 17, i32 250, i32 750, i32 1, %struct.Motor** %0)
%19 = tail call i32 @initMotor(i32 18, i32 250, i32 850, i32 1, %struct.Motor** %0)
ret void
}