#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*/ _expect_true(int, char *);
int az_clock_zigzag(int, int, int);
void test_clock_zigzag(void) {
  _expect_true(az_clock_zigzag(5, 3, 0) == 0, "az_clock_zigzag(5, 3, 0) == 0");
  _expect_true(az_clock_zigzag(5, 3, 1) == 0, "az_clock_zigzag(5, 3, 1) == 0");
  _expect_true(az_clock_zigzag(5, 3, 2) == 0, "az_clock_zigzag(5, 3, 2) == 0");
  _expect_true(az_clock_zigzag(5, 3, 3) == 1, "az_clock_zigzag(5, 3, 3) == 1");
  _expect_true(az_clock_zigzag(5, 3, 4) == 1, "az_clock_zigzag(5, 3, 4) == 1");
  _expect_true(az_clock_zigzag(5, 3, 5) == 1, "az_clock_zigzag(5, 3, 5) == 1");
  _expect_true(az_clock_zigzag(5, 3, 6) == 2, "az_clock_zigzag(5, 3, 6) == 2");
  _expect_true(az_clock_zigzag(5, 3, 7) == 2, "az_clock_zigzag(5, 3, 7) == 2");
  _expect_true(az_clock_zigzag(5, 3, 8) == 2, "az_clock_zigzag(5, 3, 8) == 2");
  _expect_true(az_clock_zigzag(5, 3, 9) == 3, "az_clock_zigzag(5, 3, 9) == 3");
  _expect_true(az_clock_zigzag(5, 3, 10) == 3,
               "az_clock_zigzag(5, 3, 10) == 3");
  _expect_true(az_clock_zigzag(5, 3, 11) == 3,
               "az_clock_zigzag(5, 3, 11) == 3");
  _expect_true(az_clock_zigzag(5, 3, 12) == 4,
               "az_clock_zigzag(5, 3, 12) == 4");
  _expect_true(az_clock_zigzag(5, 3, 13) == 4,
               "az_clock_zigzag(5, 3, 13) == 4");
  _expect_true(az_clock_zigzag(5, 3, 14) == 4,
               "az_clock_zigzag(5, 3, 14) == 4");
  _expect_true(az_clock_zigzag(5, 3, 15) == 3,
               "az_clock_zigzag(5, 3, 15) == 3");
  _expect_true(az_clock_zigzag(5, 3, 16) == 3,
               "az_clock_zigzag(5, 3, 16) == 3");
  _expect_true(az_clock_zigzag(5, 3, 17) == 3,
               "az_clock_zigzag(5, 3, 17) == 3");
  _expect_true(az_clock_zigzag(5, 3, 18) == 2,
               "az_clock_zigzag(5, 3, 18) == 2");
  _expect_true(az_clock_zigzag(5, 3, 19) == 2,
               "az_clock_zigzag(5, 3, 19) == 2");
  _expect_true(az_clock_zigzag(5, 3, 20) == 2,
               "az_clock_zigzag(5, 3, 20) == 2");
  _expect_true(az_clock_zigzag(5, 3, 21) == 1,
               "az_clock_zigzag(5, 3, 21) == 1");
  _expect_true(az_clock_zigzag(5, 3, 22) == 1,
               "az_clock_zigzag(5, 3, 22) == 1");
  _expect_true(az_clock_zigzag(5, 3, 23) == 1,
               "az_clock_zigzag(5, 3, 23) == 1");
  _expect_true(az_clock_zigzag(5, 3, 24) == 0,
               "az_clock_zigzag(5, 3, 24) == 0");
  _expect_true(az_clock_zigzag(5, 3, 25) == 0,
               "az_clock_zigzag(5, 3, 25) == 0");
  _expect_true(az_clock_zigzag(5, 3, 26) == 0,
               "az_clock_zigzag(5, 3, 26) == 0");
  _expect_true(az_clock_zigzag(5, 3, 27) == 1,
               "az_clock_zigzag(5, 3, 27) == 1");
  _expect_true(az_clock_zigzag(5, 3, 28) == 1,
               "az_clock_zigzag(5, 3, 28) == 1");
  _expect_true(az_clock_zigzag(5, 3, 29) == 1,
               "az_clock_zigzag(5, 3, 29) == 1");
  _expect_true(az_clock_zigzag(5, 3, 30) == 2,
               "az_clock_zigzag(5, 3, 30) == 2");
}


x86 assembly (clang, -O0):
<test_clock_zigzag>:
push   %rbp
mov    %rsp,%rbp
mov    $0x5,%edi
mov    $0x3,%esi
xor    %edx,%edx
call   1040 <az_clock_zigzag@plt>
cmp    $0x0,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
lea    0xeb9(%rip),%rsi
call   1030 <_expect_true@plt>
mov    $0x5,%edi
mov    $0x3,%esi
mov    $0x1,%edx
call   1040 <az_clock_zigzag@plt>
cmp    $0x0,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
lea    0xeac(%rip),%rsi
call   1030 <_expect_true@plt>
mov    $0x5,%edi
mov    $0x3,%esi
mov    $0x2,%edx
call   1040 <az_clock_zigzag@plt>
cmp    $0x0,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
lea    0xe9f(%rip),%rsi
call   1030 <_expect_true@plt>
mov    $0x5,%edi
mov    $0x3,%edx
mov    %edx,%esi
call   1040 <az_clock_zigzag@plt>
cmp    $0x1,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
lea    0xe95(%rip),%rsi
call   1030 <_expect_true@plt>
mov    $0x5,%edi
mov    $0x3,%esi
mov    $0x4,%edx
call   1040 <az_clock_zigzag@plt>
cmp    $0x1,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
lea    0xe88(%rip),%rsi
call   1030 <_expect_true@plt>
mov    $0x5,%edx
mov    $0x3,%esi
mov    %edx,%edi
call   1040 <az_clock_zigzag@plt>
cmp    $0x1,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
lea    0xe7e(%rip),%rsi
call   1030 <_expect_true@plt>
mov    $0x5,%edi
mov    $0x3,%esi
mov    $0x6,%edx
call   1040 <az_clock_zigzag@plt>
cmp    $0x2,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
lea    0xe71(%rip),%rsi
call   1030 <_expect_true@plt>
mov    $0x5,%edi
mov    $0x3,%esi
mov    $0x7,%edx
call   1040 <az_clock_zigzag@plt>
cmp    $0x2,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
lea    0xe64(%rip),%rsi
call   1030 <_expect_true@plt>
mov    $0x5,%edi
mov    $0x3,%esi
mov    $0x8,%edx
call   1040 <az_clock_zigzag@plt>
cmp    $0x2,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
lea    0xe57(%rip),%rsi
call   1030 <_expect_true@plt>
mov    $0x5,%edi
mov    $0x3,%esi
mov    $0x9,%edx
call   1040 <az_clock_zigzag@plt>
cmp    $0x3,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
lea    0xe4a(%rip),%rsi
call   1030 <_expect_true@plt>
mov    $0x5,%edi
mov    $0x3,%esi
mov    $0xa,%edx
call   1040 <az_clock_zigzag@plt>
cmp    $0x3,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
lea    0xe3d(%rip),%rsi
call   1030 <_expect_true@plt>
mov    $0x5,%edi
mov    $0x3,%esi
mov    $0xb,%edx
call   1040 <az_clock_zigzag@plt>
cmp    $0x3,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
lea    0xe31(%rip),%rsi
call   1030 <_expect_true@plt>
mov    $0x5,%edi
mov    $0x3,%esi
mov    $0xc,%edx
call   1040 <az_clock_zigzag@plt>
cmp    $0x4,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
lea    0xe25(%rip),%rsi
call   1030 <_expect_true@plt>
mov    $0x5,%edi
mov    $0x3,%esi
mov    $0xd,%edx
call   1040 <az_clock_zigzag@plt>
cmp    $0x4,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
lea    0xe19(%rip),%rsi
call   1030 <_expect_true@plt>
mov    $0x5,%edi
mov    $0x3,%esi
mov    $0xe,%edx
call   1040 <az_clock_zigzag@plt>
cmp    $0x4,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
lea    0xe0d(%rip),%rsi
call   1030 <_expect_true@plt>
mov    $0x5,%edi
mov    $0x3,%esi
mov    $0xf,%edx
call   1040 <az_clock_zigzag@plt>
cmp    $0x3,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
lea    0xe01(%rip),%rsi
call   1030 <_expect_true@plt>
mov    $0x5,%edi
mov    $0x3,%esi
mov    $0x10,%edx
call   1040 <az_clock_zigzag@plt>
cmp    $0x3,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
lea    0xdf5(%rip),%rsi
call   1030 <_expect_true@plt>
mov    $0x5,%edi
mov    $0x3,%esi
mov    $0x11,%edx
call   1040 <az_clock_zigzag@plt>
cmp    $0x3,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
lea    0xde9(%rip),%rsi
call   1030 <_expect_true@plt>
mov    $0x5,%edi
mov    $0x3,%esi
mov    $0x12,%edx
call   1040 <az_clock_zigzag@plt>
cmp    $0x2,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
lea    0xddd(%rip),%rsi
call   1030 <_expect_true@plt>
mov    $0x5,%edi
mov    $0x3,%esi
mov    $0x13,%edx
call   1040 <az_clock_zigzag@plt>
cmp    $0x2,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
lea    0xdd1(%rip),%rsi
call   1030 <_expect_true@plt>
mov    $0x5,%edi
mov    $0x3,%esi
mov    $0x14,%edx
call   1040 <az_clock_zigzag@plt>
cmp    $0x2,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
lea    0xdc5(%rip),%rsi
call   1030 <_expect_true@plt>
mov    $0x5,%edi
mov    $0x3,%esi
mov    $0x15,%edx
call   1040 <az_clock_zigzag@plt>
cmp    $0x1,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
lea    0xdb9(%rip),%rsi
call   1030 <_expect_true@plt>
mov    $0x5,%edi
mov    $0x3,%esi
mov    $0x16,%edx
call   1040 <az_clock_zigzag@plt>
cmp    $0x1,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
lea    0xdad(%rip),%rsi
call   1030 <_expect_true@plt>
mov    $0x5,%edi
mov    $0x3,%esi
mov    $0x17,%edx
call   1040 <az_clock_zigzag@plt>
cmp    $0x1,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
lea    0xda1(%rip),%rsi
call   1030 <_expect_true@plt>
mov    $0x5,%edi
mov    $0x3,%esi
mov    $0x18,%edx
call   1040 <az_clock_zigzag@plt>
cmp    $0x0,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
lea    0xd95(%rip),%rsi
call   1030 <_expect_true@plt>
mov    $0x5,%edi
mov    $0x3,%esi
mov    $0x19,%edx
call   1040 <az_clock_zigzag@plt>
cmp    $0x0,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
lea    0xd89(%rip),%rsi
call   1030 <_expect_true@plt>
mov    $0x5,%edi
mov    $0x3,%esi
mov    $0x1a,%edx
call   1040 <az_clock_zigzag@plt>
cmp    $0x0,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
lea    0xd7d(%rip),%rsi
call   1030 <_expect_true@plt>
mov    $0x5,%edi
mov    $0x3,%esi
mov    $0x1b,%edx
call   1040 <az_clock_zigzag@plt>
cmp    $0x1,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
lea    0xd71(%rip),%rsi
call   1030 <_expect_true@plt>
mov    $0x5,%edi
mov    $0x3,%esi
mov    $0x1c,%edx
call   1040 <az_clock_zigzag@plt>
cmp    $0x1,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
lea    0xd65(%rip),%rsi
call   1030 <_expect_true@plt>
mov    $0x5,%edi
mov    $0x3,%esi
mov    $0x1d,%edx
call   1040 <az_clock_zigzag@plt>
cmp    $0x1,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
lea    0xd59(%rip),%rsi
call   1030 <_expect_true@plt>
mov    $0x5,%edi
mov    $0x3,%esi
mov    $0x1e,%edx
call   1040 <az_clock_zigzag@plt>
cmp    $0x2,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
lea    0xd4d(%rip),%rsi
call   1030 <_expect_true@plt>
pop    %rbp
ret

x86 assembly (clang, -O2):
<test_clock_zigzag>:
push   %rax
mov    $0x5,%edi
mov    $0x3,%esi
xor    %edx,%edx
call   1040 <az_clock_zigzag@plt>
xor    %edi,%edi
test   %eax,%eax
sete   %dil
lea    0xebf(%rip),%rsi
call   1030 <_expect_true@plt>
mov    $0x5,%edi
mov    $0x3,%esi
mov    $0x1,%edx
call   1040 <az_clock_zigzag@plt>
xor    %edi,%edi
test   %eax,%eax
sete   %dil
lea    0xeb5(%rip),%rsi
call   1030 <_expect_true@plt>
mov    $0x5,%edi
mov    $0x3,%esi
mov    $0x2,%edx
call   1040 <az_clock_zigzag@plt>
xor    %edi,%edi
test   %eax,%eax
sete   %dil
lea    0xeab(%rip),%rsi
call   1030 <_expect_true@plt>
mov    $0x5,%edi
mov    $0x3,%esi
mov    $0x3,%edx
call   1040 <az_clock_zigzag@plt>
xor    %edi,%edi
cmp    $0x1,%eax
sete   %dil
lea    0xea0(%rip),%rsi
call   1030 <_expect_true@plt>
mov    $0x5,%edi
mov    $0x3,%esi
mov    $0x4,%edx
call   1040 <az_clock_zigzag@plt>
xor    %edi,%edi
cmp    $0x1,%eax
sete   %dil
lea    0xe95(%rip),%rsi
call   1030 <_expect_true@plt>
mov    $0x5,%edi
mov    $0x3,%esi
mov    $0x5,%edx
call   1040 <az_clock_zigzag@plt>
xor    %edi,%edi
cmp    $0x1,%eax
sete   %dil
lea    0xe8a(%rip),%rsi
call   1030 <_expect_true@plt>
mov    $0x5,%edi
mov    $0x3,%esi
mov    $0x6,%edx
call   1040 <az_clock_zigzag@plt>
xor    %edi,%edi
cmp    $0x2,%eax
sete   %dil
lea    0xe7f(%rip),%rsi
call   1030 <_expect_true@plt>
mov    $0x5,%edi
mov    $0x3,%esi
mov    $0x7,%edx
call   1040 <az_clock_zigzag@plt>
xor    %edi,%edi
cmp    $0x2,%eax
sete   %dil
lea    0xe74(%rip),%rsi
call   1030 <_expect_true@plt>
mov    $0x5,%edi
mov    $0x3,%esi
mov    $0x8,%edx
call   1040 <az_clock_zigzag@plt>
xor    %edi,%edi
cmp    $0x2,%eax
sete   %dil
lea    0xe69(%rip),%rsi
call   1030 <_expect_true@plt>
mov    $0x5,%edi
mov    $0x3,%esi
mov    $0x9,%edx
call   1040 <az_clock_zigzag@plt>
xor    %edi,%edi
cmp    $0x3,%eax
sete   %dil
lea    0xe5e(%rip),%rsi
call   1030 <_expect_true@plt>
mov    $0x5,%edi
mov    $0x3,%esi
mov    $0xa,%edx
call   1040 <az_clock_zigzag@plt>
xor    %edi,%edi
cmp    $0x3,%eax
sete   %dil
lea    0xe53(%rip),%rsi
call   1030 <_expect_true@plt>
mov    $0x5,%edi
mov    $0x3,%esi
mov    $0xb,%edx
call   1040 <az_clock_zigzag@plt>
xor    %edi,%edi
cmp    $0x3,%eax
sete   %dil
lea    0xe49(%rip),%rsi
call   1030 <_expect_true@plt>
mov    $0x5,%edi
mov    $0x3,%esi
mov    $0xc,%edx
call   1040 <az_clock_zigzag@plt>
xor    %edi,%edi
cmp    $0x4,%eax
sete   %dil
lea    0xe3f(%rip),%rsi
call   1030 <_expect_true@plt>
mov    $0x5,%edi
mov    $0x3,%esi
mov    $0xd,%edx
call   1040 <az_clock_zigzag@plt>
xor    %edi,%edi
cmp    $0x4,%eax
sete   %dil
lea    0xe35(%rip),%rsi
call   1030 <_expect_true@plt>
mov    $0x5,%edi
mov    $0x3,%esi
mov    $0xe,%edx
call   1040 <az_clock_zigzag@plt>
xor    %edi,%edi
cmp    $0x4,%eax
sete   %dil
lea    0xe2b(%rip),%rsi
call   1030 <_expect_true@plt>
mov    $0x5,%edi
mov    $0x3,%esi
mov    $0xf,%edx
call   1040 <az_clock_zigzag@plt>
xor    %edi,%edi
cmp    $0x3,%eax
sete   %dil
lea    0xe21(%rip),%rsi
call   1030 <_expect_true@plt>
mov    $0x5,%edi
mov    $0x3,%esi
mov    $0x10,%edx
call   1040 <az_clock_zigzag@plt>
xor    %edi,%edi
cmp    $0x3,%eax
sete   %dil
lea    0xe17(%rip),%rsi
call   1030 <_expect_true@plt>
mov    $0x5,%edi
mov    $0x3,%esi
mov    $0x11,%edx
call   1040 <az_clock_zigzag@plt>
xor    %edi,%edi
cmp    $0x3,%eax
sete   %dil
lea    0xe0d(%rip),%rsi
call   1030 <_expect_true@plt>
mov    $0x5,%edi
mov    $0x3,%esi
mov    $0x12,%edx
call   1040 <az_clock_zigzag@plt>
xor    %edi,%edi
cmp    $0x2,%eax
sete   %dil
lea    0xe03(%rip),%rsi
call   1030 <_expect_true@plt>
mov    $0x5,%edi
mov    $0x3,%esi
mov    $0x13,%edx
call   1040 <az_clock_zigzag@plt>
xor    %edi,%edi
cmp    $0x2,%eax
sete   %dil
lea    0xdf9(%rip),%rsi
call   1030 <_expect_true@plt>
mov    $0x5,%edi
mov    $0x3,%esi
mov    $0x14,%edx
call   1040 <az_clock_zigzag@plt>
xor    %edi,%edi
cmp    $0x2,%eax
sete   %dil
lea    0xdef(%rip),%rsi
call   1030 <_expect_true@plt>
mov    $0x5,%edi
mov    $0x3,%esi
mov    $0x15,%edx
call   1040 <az_clock_zigzag@plt>
xor    %edi,%edi
cmp    $0x1,%eax
sete   %dil
lea    0xde5(%rip),%rsi
call   1030 <_expect_true@plt>
mov    $0x5,%edi
mov    $0x3,%esi
mov    $0x16,%edx
call   1040 <az_clock_zigzag@plt>
xor    %edi,%edi
cmp    $0x1,%eax
sete   %dil
lea    0xddb(%rip),%rsi
call   1030 <_expect_true@plt>
mov    $0x5,%edi
mov    $0x3,%esi
mov    $0x17,%edx
call   1040 <az_clock_zigzag@plt>
xor    %edi,%edi
cmp    $0x1,%eax
sete   %dil
lea    0xdd1(%rip),%rsi
call   1030 <_expect_true@plt>
mov    $0x5,%edi
mov    $0x3,%esi
mov    $0x18,%edx
call   1040 <az_clock_zigzag@plt>
xor    %edi,%edi
test   %eax,%eax
sete   %dil
lea    0xdc8(%rip),%rsi
call   1030 <_expect_true@plt>
mov    $0x5,%edi
mov    $0x3,%esi
mov    $0x19,%edx
call   1040 <az_clock_zigzag@plt>
xor    %edi,%edi
test   %eax,%eax
sete   %dil
lea    0xdbf(%rip),%rsi
call   1030 <_expect_true@plt>
mov    $0x5,%edi
mov    $0x3,%esi
mov    $0x1a,%edx
call   1040 <az_clock_zigzag@plt>
xor    %edi,%edi
test   %eax,%eax
sete   %dil
lea    0xdb6(%rip),%rsi
call   1030 <_expect_true@plt>
mov    $0x5,%edi
mov    $0x3,%esi
mov    $0x1b,%edx
call   1040 <az_clock_zigzag@plt>
xor    %edi,%edi
cmp    $0x1,%eax
sete   %dil
lea    0xdac(%rip),%rsi
call   1030 <_expect_true@plt>
mov    $0x5,%edi
mov    $0x3,%esi
mov    $0x1c,%edx
call   1040 <az_clock_zigzag@plt>
xor    %edi,%edi
cmp    $0x1,%eax
sete   %dil
lea    0xda2(%rip),%rsi
call   1030 <_expect_true@plt>
mov    $0x5,%edi
mov    $0x3,%esi
mov    $0x1d,%edx
call   1040 <az_clock_zigzag@plt>
xor    %edi,%edi
cmp    $0x1,%eax
sete   %dil
lea    0xd98(%rip),%rsi
call   1030 <_expect_true@plt>
mov    $0x5,%edi
mov    $0x3,%esi
mov    $0x1e,%edx
call   1040 <az_clock_zigzag@plt>
xor    %edi,%edi
cmp    $0x2,%eax
sete   %dil
lea    0xd8e(%rip),%rsi
pop    %rax
jmp    1030 <_expect_true@plt>

LLVM IR (-O0):
@.str = [30 x i8] c"az_clock_zigzag(5, 3, 0) == 0\00"
@.str.1 = [30 x i8] c"az_clock_zigzag(5, 3, 1) == 0\00"
@.str.2 = [30 x i8] c"az_clock_zigzag(5, 3, 2) == 0\00"
@.str.3 = [30 x i8] c"az_clock_zigzag(5, 3, 3) == 1\00"
@.str.4 = [30 x i8] c"az_clock_zigzag(5, 3, 4) == 1\00"
@.str.5 = [30 x i8] c"az_clock_zigzag(5, 3, 5) == 1\00"
@.str.6 = [30 x i8] c"az_clock_zigzag(5, 3, 6) == 2\00"
@.str.7 = [30 x i8] c"az_clock_zigzag(5, 3, 7) == 2\00"
@.str.8 = [30 x i8] c"az_clock_zigzag(5, 3, 8) == 2\00"
@.str.9 = [30 x i8] c"az_clock_zigzag(5, 3, 9) == 3\00"
@.str.10 = [31 x i8] c"az_clock_zigzag(5, 3, 10) == 3\00"
@.str.11 = [31 x i8] c"az_clock_zigzag(5, 3, 11) == 3\00"
@.str.12 = [31 x i8] c"az_clock_zigzag(5, 3, 12) == 4\00"
@.str.13 = [31 x i8] c"az_clock_zigzag(5, 3, 13) == 4\00"
@.str.14 = [31 x i8] c"az_clock_zigzag(5, 3, 14) == 4\00"
@.str.15 = [31 x i8] c"az_clock_zigzag(5, 3, 15) == 3\00"
@.str.16 = [31 x i8] c"az_clock_zigzag(5, 3, 16) == 3\00"
@.str.17 = [31 x i8] c"az_clock_zigzag(5, 3, 17) == 3\00"
@.str.18 = [31 x i8] c"az_clock_zigzag(5, 3, 18) == 2\00"
@.str.19 = [31 x i8] c"az_clock_zigzag(5, 3, 19) == 2\00"
@.str.20 = [31 x i8] c"az_clock_zigzag(5, 3, 20) == 2\00"
@.str.21 = [31 x i8] c"az_clock_zigzag(5, 3, 21) == 1\00"
@.str.22 = [31 x i8] c"az_clock_zigzag(5, 3, 22) == 1\00"
@.str.23 = [31 x i8] c"az_clock_zigzag(5, 3, 23) == 1\00"
@.str.24 = [31 x i8] c"az_clock_zigzag(5, 3, 24) == 0\00"
@.str.25 = [31 x i8] c"az_clock_zigzag(5, 3, 25) == 0\00"
@.str.26 = [31 x i8] c"az_clock_zigzag(5, 3, 26) == 0\00"
@.str.27 = [31 x i8] c"az_clock_zigzag(5, 3, 27) == 1\00"
@.str.28 = [31 x i8] c"az_clock_zigzag(5, 3, 28) == 1\00"
@.str.29 = [31 x i8] c"az_clock_zigzag(5, 3, 29) == 1\00"
@.str.30 = [31 x i8] c"az_clock_zigzag(5, 3, 30) == 2\00"
define void @test_clock_zigzag() {
%1 = call i32 @az_clock_zigzag(i32 5, i32 3, i32 0)
%2 = icmp eq i32 %1, 0
%3 = zext i1 %2 to i32
%4 = call i32 @_expect_true(i32 %3, i8* getelementptr inbounds ([30 x i8], [30 x i8]* @.str, i64 0, i64 0))
%5 = call i32 @az_clock_zigzag(i32 5, i32 3, i32 1)
%6 = icmp eq i32 %5, 0
%7 = zext i1 %6 to i32
%8 = call i32 @_expect_true(i32 %7, i8* getelementptr inbounds ([30 x i8], [30 x i8]* @.str.1, i64 0, i64 0))
%9 = call i32 @az_clock_zigzag(i32 5, i32 3, i32 2)
%10 = icmp eq i32 %9, 0
%11 = zext i1 %10 to i32
%12 = call i32 @_expect_true(i32 %11, i8* getelementptr inbounds ([30 x i8], [30 x i8]* @.str.2, i64 0, i64 0))
%13 = call i32 @az_clock_zigzag(i32 5, i32 3, i32 3)
%14 = icmp eq i32 %13, 1
%15 = zext i1 %14 to i32
%16 = call i32 @_expect_true(i32 %15, i8* getelementptr inbounds ([30 x i8], [30 x i8]* @.str.3, i64 0, i64 0))
%17 = call i32 @az_clock_zigzag(i32 5, i32 3, i32 4)
%18 = icmp eq i32 %17, 1
%19 = zext i1 %18 to i32
%20 = call i32 @_expect_true(i32 %19, i8* getelementptr inbounds ([30 x i8], [30 x i8]* @.str.4, i64 0, i64 0))
%21 = call i32 @az_clock_zigzag(i32 5, i32 3, i32 5)
%22 = icmp eq i32 %21, 1
%23 = zext i1 %22 to i32
%24 = call i32 @_expect_true(i32 %23, i8* getelementptr inbounds ([30 x i8], [30 x i8]* @.str.5, i64 0, i64 0))
%25 = call i32 @az_clock_zigzag(i32 5, i32 3, i32 6)
%26 = icmp eq i32 %25, 2
%27 = zext i1 %26 to i32
%28 = call i32 @_expect_true(i32 %27, i8* getelementptr inbounds ([30 x i8], [30 x i8]* @.str.6, i64 0, i64 0))
%29 = call i32 @az_clock_zigzag(i32 5, i32 3, i32 7)
%30 = icmp eq i32 %29, 2
%31 = zext i1 %30 to i32
%32 = call i32 @_expect_true(i32 %31, i8* getelementptr inbounds ([30 x i8], [30 x i8]* @.str.7, i64 0, i64 0))
%33 = call i32 @az_clock_zigzag(i32 5, i32 3, i32 8)
%34 = icmp eq i32 %33, 2
%35 = zext i1 %34 to i32
%36 = call i32 @_expect_true(i32 %35, i8* getelementptr inbounds ([30 x i8], [30 x i8]* @.str.8, i64 0, i64 0))
%37 = call i32 @az_clock_zigzag(i32 5, i32 3, i32 9)
%38 = icmp eq i32 %37, 3
%39 = zext i1 %38 to i32
%40 = call i32 @_expect_true(i32 %39, i8* getelementptr inbounds ([30 x i8], [30 x i8]* @.str.9, i64 0, i64 0))
%41 = call i32 @az_clock_zigzag(i32 5, i32 3, i32 10)
%42 = icmp eq i32 %41, 3
%43 = zext i1 %42 to i32
%44 = call i32 @_expect_true(i32 %43, i8* getelementptr inbounds ([31 x i8], [31 x i8]* @.str.10, i64 0, i64 0))
%45 = call i32 @az_clock_zigzag(i32 5, i32 3, i32 11)
%46 = icmp eq i32 %45, 3
%47 = zext i1 %46 to i32
%48 = call i32 @_expect_true(i32 %47, i8* getelementptr inbounds ([31 x i8], [31 x i8]* @.str.11, i64 0, i64 0))
%49 = call i32 @az_clock_zigzag(i32 5, i32 3, i32 12)
%50 = icmp eq i32 %49, 4
%51 = zext i1 %50 to i32
%52 = call i32 @_expect_true(i32 %51, i8* getelementptr inbounds ([31 x i8], [31 x i8]* @.str.12, i64 0, i64 0))
%53 = call i32 @az_clock_zigzag(i32 5, i32 3, i32 13)
%54 = icmp eq i32 %53, 4
%55 = zext i1 %54 to i32
%56 = call i32 @_expect_true(i32 %55, i8* getelementptr inbounds ([31 x i8], [31 x i8]* @.str.13, i64 0, i64 0))
%57 = call i32 @az_clock_zigzag(i32 5, i32 3, i32 14)
%58 = icmp eq i32 %57, 4
%59 = zext i1 %58 to i32
%60 = call i32 @_expect_true(i32 %59, i8* getelementptr inbounds ([31 x i8], [31 x i8]* @.str.14, i64 0, i64 0))
%61 = call i32 @az_clock_zigzag(i32 5, i32 3, i32 15)
%62 = icmp eq i32 %61, 3
%63 = zext i1 %62 to i32
%64 = call i32 @_expect_true(i32 %63, i8* getelementptr inbounds ([31 x i8], [31 x i8]* @.str.15, i64 0, i64 0))
%65 = call i32 @az_clock_zigzag(i32 5, i32 3, i32 16)
%66 = icmp eq i32 %65, 3
%67 = zext i1 %66 to i32
%68 = call i32 @_expect_true(i32 %67, i8* getelementptr inbounds ([31 x i8], [31 x i8]* @.str.16, i64 0, i64 0))
%69 = call i32 @az_clock_zigzag(i32 5, i32 3, i32 17)
%70 = icmp eq i32 %69, 3
%71 = zext i1 %70 to i32
%72 = call i32 @_expect_true(i32 %71, i8* getelementptr inbounds ([31 x i8], [31 x i8]* @.str.17, i64 0, i64 0))
%73 = call i32 @az_clock_zigzag(i32 5, i32 3, i32 18)
%74 = icmp eq i32 %73, 2
%75 = zext i1 %74 to i32
%76 = call i32 @_expect_true(i32 %75, i8* getelementptr inbounds ([31 x i8], [31 x i8]* @.str.18, i64 0, i64 0))
%77 = call i32 @az_clock_zigzag(i32 5, i32 3, i32 19)
%78 = icmp eq i32 %77, 2
%79 = zext i1 %78 to i32
%80 = call i32 @_expect_true(i32 %79, i8* getelementptr inbounds ([31 x i8], [31 x i8]* @.str.19, i64 0, i64 0))
%81 = call i32 @az_clock_zigzag(i32 5, i32 3, i32 20)
%82 = icmp eq i32 %81, 2
%83 = zext i1 %82 to i32
%84 = call i32 @_expect_true(i32 %83, i8* getelementptr inbounds ([31 x i8], [31 x i8]* @.str.20, i64 0, i64 0))
%85 = call i32 @az_clock_zigzag(i32 5, i32 3, i32 21)
%86 = icmp eq i32 %85, 1
%87 = zext i1 %86 to i32
%88 = call i32 @_expect_true(i32 %87, i8* getelementptr inbounds ([31 x i8], [31 x i8]* @.str.21, i64 0, i64 0))
%89 = call i32 @az_clock_zigzag(i32 5, i32 3, i32 22)
%90 = icmp eq i32 %89, 1
%91 = zext i1 %90 to i32
%92 = call i32 @_expect_true(i32 %91, i8* getelementptr inbounds ([31 x i8], [31 x i8]* @.str.22, i64 0, i64 0))
%93 = call i32 @az_clock_zigzag(i32 5, i32 3, i32 23)
%94 = icmp eq i32 %93, 1
%95 = zext i1 %94 to i32
%96 = call i32 @_expect_true(i32 %95, i8* getelementptr inbounds ([31 x i8], [31 x i8]* @.str.23, i64 0, i64 0))
%97 = call i32 @az_clock_zigzag(i32 5, i32 3, i32 24)
%98 = icmp eq i32 %97, 0
%99 = zext i1 %98 to i32
%100 = call i32 @_expect_true(i32 %99, i8* getelementptr inbounds ([31 x i8], [31 x i8]* @.str.24, i64 0, i64 0))
%101 = call i32 @az_clock_zigzag(i32 5, i32 3, i32 25)
%102 = icmp eq i32 %101, 0
%103 = zext i1 %102 to i32
%104 = call i32 @_expect_true(i32 %103, i8* getelementptr inbounds ([31 x i8], [31 x i8]* @.str.25, i64 0, i64 0))
%105 = call i32 @az_clock_zigzag(i32 5, i32 3, i32 26)
%106 = icmp eq i32 %105, 0
%107 = zext i1 %106 to i32
%108 = call i32 @_expect_true(i32 %107, i8* getelementptr inbounds ([31 x i8], [31 x i8]* @.str.26, i64 0, i64 0))
%109 = call i32 @az_clock_zigzag(i32 5, i32 3, i32 27)
%110 = icmp eq i32 %109, 1
%111 = zext i1 %110 to i32
%112 = call i32 @_expect_true(i32 %111, i8* getelementptr inbounds ([31 x i8], [31 x i8]* @.str.27, i64 0, i64 0))
%113 = call i32 @az_clock_zigzag(i32 5, i32 3, i32 28)
%114 = icmp eq i32 %113, 1
%115 = zext i1 %114 to i32
%116 = call i32 @_expect_true(i32 %115, i8* getelementptr inbounds ([31 x i8], [31 x i8]* @.str.28, i64 0, i64 0))
%117 = call i32 @az_clock_zigzag(i32 5, i32 3, i32 29)
%118 = icmp eq i32 %117, 1
%119 = zext i1 %118 to i32
%120 = call i32 @_expect_true(i32 %119, i8* getelementptr inbounds ([31 x i8], [31 x i8]* @.str.29, i64 0, i64 0))
%121 = call i32 @az_clock_zigzag(i32 5, i32 3, i32 30)
%122 = icmp eq i32 %121, 2
%123 = zext i1 %122 to i32
%124 = call i32 @_expect_true(i32 %123, i8* getelementptr inbounds ([31 x i8], [31 x i8]* @.str.30, i64 0, i64 0))
ret void
}

LLVM IR (-O2):
@.str = [30 x i8] c"az_clock_zigzag(5, 3, 0) == 0\00"
@.str.1 = [30 x i8] c"az_clock_zigzag(5, 3, 1) == 0\00"
@.str.2 = [30 x i8] c"az_clock_zigzag(5, 3, 2) == 0\00"
@.str.3 = [30 x i8] c"az_clock_zigzag(5, 3, 3) == 1\00"
@.str.4 = [30 x i8] c"az_clock_zigzag(5, 3, 4) == 1\00"
@.str.5 = [30 x i8] c"az_clock_zigzag(5, 3, 5) == 1\00"
@.str.6 = [30 x i8] c"az_clock_zigzag(5, 3, 6) == 2\00"
@.str.7 = [30 x i8] c"az_clock_zigzag(5, 3, 7) == 2\00"
@.str.8 = [30 x i8] c"az_clock_zigzag(5, 3, 8) == 2\00"
@.str.9 = [30 x i8] c"az_clock_zigzag(5, 3, 9) == 3\00"
@.str.10 = [31 x i8] c"az_clock_zigzag(5, 3, 10) == 3\00"
@.str.11 = [31 x i8] c"az_clock_zigzag(5, 3, 11) == 3\00"
@.str.12 = [31 x i8] c"az_clock_zigzag(5, 3, 12) == 4\00"
@.str.13 = [31 x i8] c"az_clock_zigzag(5, 3, 13) == 4\00"
@.str.14 = [31 x i8] c"az_clock_zigzag(5, 3, 14) == 4\00"
@.str.15 = [31 x i8] c"az_clock_zigzag(5, 3, 15) == 3\00"
@.str.16 = [31 x i8] c"az_clock_zigzag(5, 3, 16) == 3\00"
@.str.17 = [31 x i8] c"az_clock_zigzag(5, 3, 17) == 3\00"
@.str.18 = [31 x i8] c"az_clock_zigzag(5, 3, 18) == 2\00"
@.str.19 = [31 x i8] c"az_clock_zigzag(5, 3, 19) == 2\00"
@.str.20 = [31 x i8] c"az_clock_zigzag(5, 3, 20) == 2\00"
@.str.21 = [31 x i8] c"az_clock_zigzag(5, 3, 21) == 1\00"
@.str.22 = [31 x i8] c"az_clock_zigzag(5, 3, 22) == 1\00"
@.str.23 = [31 x i8] c"az_clock_zigzag(5, 3, 23) == 1\00"
@.str.24 = [31 x i8] c"az_clock_zigzag(5, 3, 24) == 0\00"
@.str.25 = [31 x i8] c"az_clock_zigzag(5, 3, 25) == 0\00"
@.str.26 = [31 x i8] c"az_clock_zigzag(5, 3, 26) == 0\00"
@.str.27 = [31 x i8] c"az_clock_zigzag(5, 3, 27) == 1\00"
@.str.28 = [31 x i8] c"az_clock_zigzag(5, 3, 28) == 1\00"
@.str.29 = [31 x i8] c"az_clock_zigzag(5, 3, 29) == 1\00"
@.str.30 = [31 x i8] c"az_clock_zigzag(5, 3, 30) == 2\00"
define void @test_clock_zigzag() {
%1 = tail call i32 @az_clock_zigzag(i32 5, i32 3, i32 0)
%2 = icmp eq i32 %1, 0
%3 = zext i1 %2 to i32
%4 = tail call i32 @_expect_true(i32 %3, i8* getelementptr inbounds ([30 x i8], [30 x i8]* @.str, i64 0, i64 0))
%5 = tail call i32 @az_clock_zigzag(i32 5, i32 3, i32 1)
%6 = icmp eq i32 %5, 0
%7 = zext i1 %6 to i32
%8 = tail call i32 @_expect_true(i32 %7, i8* getelementptr inbounds ([30 x i8], [30 x i8]* @.str.1, i64 0, i64 0))
%9 = tail call i32 @az_clock_zigzag(i32 5, i32 3, i32 2)
%10 = icmp eq i32 %9, 0
%11 = zext i1 %10 to i32
%12 = tail call i32 @_expect_true(i32 %11, i8* getelementptr inbounds ([30 x i8], [30 x i8]* @.str.2, i64 0, i64 0))
%13 = tail call i32 @az_clock_zigzag(i32 5, i32 3, i32 3)
%14 = icmp eq i32 %13, 1
%15 = zext i1 %14 to i32
%16 = tail call i32 @_expect_true(i32 %15, i8* getelementptr inbounds ([30 x i8], [30 x i8]* @.str.3, i64 0, i64 0))
%17 = tail call i32 @az_clock_zigzag(i32 5, i32 3, i32 4)
%18 = icmp eq i32 %17, 1
%19 = zext i1 %18 to i32
%20 = tail call i32 @_expect_true(i32 %19, i8* getelementptr inbounds ([30 x i8], [30 x i8]* @.str.4, i64 0, i64 0))
%21 = tail call i32 @az_clock_zigzag(i32 5, i32 3, i32 5)
%22 = icmp eq i32 %21, 1
%23 = zext i1 %22 to i32
%24 = tail call i32 @_expect_true(i32 %23, i8* getelementptr inbounds ([30 x i8], [30 x i8]* @.str.5, i64 0, i64 0))
%25 = tail call i32 @az_clock_zigzag(i32 5, i32 3, i32 6)
%26 = icmp eq i32 %25, 2
%27 = zext i1 %26 to i32
%28 = tail call i32 @_expect_true(i32 %27, i8* getelementptr inbounds ([30 x i8], [30 x i8]* @.str.6, i64 0, i64 0))
%29 = tail call i32 @az_clock_zigzag(i32 5, i32 3, i32 7)
%30 = icmp eq i32 %29, 2
%31 = zext i1 %30 to i32
%32 = tail call i32 @_expect_true(i32 %31, i8* getelementptr inbounds ([30 x i8], [30 x i8]* @.str.7, i64 0, i64 0))
%33 = tail call i32 @az_clock_zigzag(i32 5, i32 3, i32 8)
%34 = icmp eq i32 %33, 2
%35 = zext i1 %34 to i32
%36 = tail call i32 @_expect_true(i32 %35, i8* getelementptr inbounds ([30 x i8], [30 x i8]* @.str.8, i64 0, i64 0))
%37 = tail call i32 @az_clock_zigzag(i32 5, i32 3, i32 9)
%38 = icmp eq i32 %37, 3
%39 = zext i1 %38 to i32
%40 = tail call i32 @_expect_true(i32 %39, i8* getelementptr inbounds ([30 x i8], [30 x i8]* @.str.9, i64 0, i64 0))
%41 = tail call i32 @az_clock_zigzag(i32 5, i32 3, i32 10)
%42 = icmp eq i32 %41, 3
%43 = zext i1 %42 to i32
%44 = tail call i32 @_expect_true(i32 %43, i8* getelementptr inbounds ([31 x i8], [31 x i8]* @.str.10, i64 0, i64 0))
%45 = tail call i32 @az_clock_zigzag(i32 5, i32 3, i32 11)
%46 = icmp eq i32 %45, 3
%47 = zext i1 %46 to i32
%48 = tail call i32 @_expect_true(i32 %47, i8* getelementptr inbounds ([31 x i8], [31 x i8]* @.str.11, i64 0, i64 0))
%49 = tail call i32 @az_clock_zigzag(i32 5, i32 3, i32 12)
%50 = icmp eq i32 %49, 4
%51 = zext i1 %50 to i32
%52 = tail call i32 @_expect_true(i32 %51, i8* getelementptr inbounds ([31 x i8], [31 x i8]* @.str.12, i64 0, i64 0))
%53 = tail call i32 @az_clock_zigzag(i32 5, i32 3, i32 13)
%54 = icmp eq i32 %53, 4
%55 = zext i1 %54 to i32
%56 = tail call i32 @_expect_true(i32 %55, i8* getelementptr inbounds ([31 x i8], [31 x i8]* @.str.13, i64 0, i64 0))
%57 = tail call i32 @az_clock_zigzag(i32 5, i32 3, i32 14)
%58 = icmp eq i32 %57, 4
%59 = zext i1 %58 to i32
%60 = tail call i32 @_expect_true(i32 %59, i8* getelementptr inbounds ([31 x i8], [31 x i8]* @.str.14, i64 0, i64 0))
%61 = tail call i32 @az_clock_zigzag(i32 5, i32 3, i32 15)
%62 = icmp eq i32 %61, 3
%63 = zext i1 %62 to i32
%64 = tail call i32 @_expect_true(i32 %63, i8* getelementptr inbounds ([31 x i8], [31 x i8]* @.str.15, i64 0, i64 0))
%65 = tail call i32 @az_clock_zigzag(i32 5, i32 3, i32 16)
%66 = icmp eq i32 %65, 3
%67 = zext i1 %66 to i32
%68 = tail call i32 @_expect_true(i32 %67, i8* getelementptr inbounds ([31 x i8], [31 x i8]* @.str.16, i64 0, i64 0))
%69 = tail call i32 @az_clock_zigzag(i32 5, i32 3, i32 17)
%70 = icmp eq i32 %69, 3
%71 = zext i1 %70 to i32
%72 = tail call i32 @_expect_true(i32 %71, i8* getelementptr inbounds ([31 x i8], [31 x i8]* @.str.17, i64 0, i64 0))
%73 = tail call i32 @az_clock_zigzag(i32 5, i32 3, i32 18)
%74 = icmp eq i32 %73, 2
%75 = zext i1 %74 to i32
%76 = tail call i32 @_expect_true(i32 %75, i8* getelementptr inbounds ([31 x i8], [31 x i8]* @.str.18, i64 0, i64 0))
%77 = tail call i32 @az_clock_zigzag(i32 5, i32 3, i32 19)
%78 = icmp eq i32 %77, 2
%79 = zext i1 %78 to i32
%80 = tail call i32 @_expect_true(i32 %79, i8* getelementptr inbounds ([31 x i8], [31 x i8]* @.str.19, i64 0, i64 0))
%81 = tail call i32 @az_clock_zigzag(i32 5, i32 3, i32 20)
%82 = icmp eq i32 %81, 2
%83 = zext i1 %82 to i32
%84 = tail call i32 @_expect_true(i32 %83, i8* getelementptr inbounds ([31 x i8], [31 x i8]* @.str.20, i64 0, i64 0))
%85 = tail call i32 @az_clock_zigzag(i32 5, i32 3, i32 21)
%86 = icmp eq i32 %85, 1
%87 = zext i1 %86 to i32
%88 = tail call i32 @_expect_true(i32 %87, i8* getelementptr inbounds ([31 x i8], [31 x i8]* @.str.21, i64 0, i64 0))
%89 = tail call i32 @az_clock_zigzag(i32 5, i32 3, i32 22)
%90 = icmp eq i32 %89, 1
%91 = zext i1 %90 to i32
%92 = tail call i32 @_expect_true(i32 %91, i8* getelementptr inbounds ([31 x i8], [31 x i8]* @.str.22, i64 0, i64 0))
%93 = tail call i32 @az_clock_zigzag(i32 5, i32 3, i32 23)
%94 = icmp eq i32 %93, 1
%95 = zext i1 %94 to i32
%96 = tail call i32 @_expect_true(i32 %95, i8* getelementptr inbounds ([31 x i8], [31 x i8]* @.str.23, i64 0, i64 0))
%97 = tail call i32 @az_clock_zigzag(i32 5, i32 3, i32 24)
%98 = icmp eq i32 %97, 0
%99 = zext i1 %98 to i32
%100 = tail call i32 @_expect_true(i32 %99, i8* getelementptr inbounds ([31 x i8], [31 x i8]* @.str.24, i64 0, i64 0))
%101 = tail call i32 @az_clock_zigzag(i32 5, i32 3, i32 25)
%102 = icmp eq i32 %101, 0
%103 = zext i1 %102 to i32
%104 = tail call i32 @_expect_true(i32 %103, i8* getelementptr inbounds ([31 x i8], [31 x i8]* @.str.25, i64 0, i64 0))
%105 = tail call i32 @az_clock_zigzag(i32 5, i32 3, i32 26)
%106 = icmp eq i32 %105, 0
%107 = zext i1 %106 to i32
%108 = tail call i32 @_expect_true(i32 %107, i8* getelementptr inbounds ([31 x i8], [31 x i8]* @.str.26, i64 0, i64 0))
%109 = tail call i32 @az_clock_zigzag(i32 5, i32 3, i32 27)
%110 = icmp eq i32 %109, 1
%111 = zext i1 %110 to i32
%112 = tail call i32 @_expect_true(i32 %111, i8* getelementptr inbounds ([31 x i8], [31 x i8]* @.str.27, i64 0, i64 0))
%113 = tail call i32 @az_clock_zigzag(i32 5, i32 3, i32 28)
%114 = icmp eq i32 %113, 1
%115 = zext i1 %114 to i32
%116 = tail call i32 @_expect_true(i32 %115, i8* getelementptr inbounds ([31 x i8], [31 x i8]* @.str.28, i64 0, i64 0))
%117 = tail call i32 @az_clock_zigzag(i32 5, i32 3, i32 29)
%118 = icmp eq i32 %117, 1
%119 = zext i1 %118 to i32
%120 = tail call i32 @_expect_true(i32 %119, i8* getelementptr inbounds ([31 x i8], [31 x i8]* @.str.29, i64 0, i64 0))
%121 = tail call i32 @az_clock_zigzag(i32 5, i32 3, i32 30)
%122 = icmp eq i32 %121, 2
%123 = zext i1 %122 to i32
%124 = tail call i32 @_expect_true(i32 %123, i8* getelementptr inbounds ([31 x i8], [31 x i8]* @.str.30, i64 0, i64 0))
ret void
}