#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*/ pr(char *);
int /*<<< orphan*/ spfn_test(char *, char *, int, char *);
int /*<<< orphan*/ spfs_test(char *, char *, char *, char *);
void test_sprintf(void) {
  pr("sprintf");
  spfn_test("1", "%d", 12345, "12345");
  spfn_test("2", "%d", -12345, "-12345");
  spfn_test("3", "%+d", 12345, "+12345");
  spfn_test("4", "%+d", -12345, "-12345");
  spfn_test("5", "%10d", 12345, "     12345");
  spfn_test("6", "%10d", -12345, "    -12345");
  spfn_test("7", "%+10d", 12345, "    +12345");
  spfn_test("8", "%+10d", -12345, "    -12345");
  spfn_test("9", "%-10d", 12345, "12345     ");
  spfn_test("10", "%-10d", -12345, "-12345    ");
  spfn_test("11", "%-+10d", 12345, "+12345    ");
  spfn_test("12", "%-+10d", -12345, "-12345    ");
  spfn_test("13", "%+-10d", 12345, "+12345    ");
  spfn_test("14", "%+-10d", -12345, "-12345    ");
  spfn_test("15", "% 10d", 12345, "     12345");
  spfn_test("16", "% 10d", -12345, "    -12345");
  spfn_test("17", "%010d", 12345, "0000012345");
  spfn_test("18", "%010d", -12345, "-000012345");
  spfn_test("19", "%x", 0x2def, "2def");
  spfn_test("20", "%X", 0x2def, "2DEF");
  spfn_test("21", "%#x", 0x2def, "0x2def");
  spfn_test("22", "%#X", 0x2def, "0X2DEF");
  spfn_test("25", "%+#X", 0x2def, "0X2DEF");
  spfn_test("26", "%#+X", 0x2def, "0X2DEF");
  spfn_test("27", "%#+X", 0x2def, "0X2DEF");
  spfn_test("28", "%10X", 0x2def, "      2DEF");
  spfn_test("29", "%010X", 0x2def, "0000002DEF");
  spfn_test("30", "%-10X", 0x2def, "2DEF      ");
  spfn_test("31", "%#10X", 0x2def, "    0X2DEF");
  spfn_test("32", "%#010X", 0x2def, "0X00002DEF");
  spfn_test("33", "%#-10X", 0x2def, "0X2DEF    ");
  spfn_test("40", "%o", 0417, "417");
  spfn_test("42", "%#o", 0417, "0417");
  spfn_test("44", "%#+o", 0417, "0417");
  spfn_test("45", "%+#o", 0417, "0417");
  spfn_test("46", "%#10o", 0417, "      0417");
  spfn_test("47", "%#-10o", 0417, "0417      ");
  spfn_test("48", "%#010o", 0417, "0000000417");
  spfn_test("52", "%d", 0, "0");
  spfn_test("53", "%o", 0, "0");
  spfn_test("54", "%x", 0, "0");
  spfn_test("55", "%c", 'a', "a");
  spfn_test("56", "%10c", 'a', "         a");
  spfn_test("57", "%-10c", 'a', "a         ");
  spfs_test("58", "%s", "foo", "foo");
  spfs_test("59", "%10s", "foo", "       foo");
  spfs_test("60", "%-10s", "foo", "foo       ");
  spfn_test("61", "%1d", 12345, "12345");
  spfn_test("62", "%-1d", 12345, "12345");
  spfn_test("61", "%#1x", 0xabc, "0xabc");
  spfs_test("63", "%1s", "foo", "foo");
  spfs_test("64", "%-1s", "foo", "foo");
}


x86 assembly (clang, -O0):
<test_sprintf>:
push   %rbp
mov    %rsp,%rbp
lea    0xec5(%rip),%rdi
call   1040 <pr@plt>
lea    0xf14(%rip),%rdi
lea    0xeba(%rip),%rsi
mov    $0x3039,%edx
lea    0xebf(%rip),%rcx
call   1050 <spfn_test@plt>
lea    0xf0a(%rip),%rdi
lea    0xe9b(%rip),%rsi
mov    $0xffffcfc7,%edx
lea    0xeaa(%rip),%rcx
call   1050 <spfn_test@plt>
lea    0xeee(%rip),%rdi
lea    0xe7f(%rip),%rsi
mov    $0x3039,%edx
lea    0xe9c(%rip),%rcx
call   1050 <spfn_test@plt>
lea    0xed9(%rip),%rdi
lea    0xe60(%rip),%rsi
mov    $0xffffcfc7,%edx
lea    0xe6c(%rip),%rcx
call   1050 <spfn_test@plt>
lea    0xebd(%rip),%rdi
lea    0xe45(%rip),%rsi
mov    $0x3039,%edx
lea    0xe3e(%rip),%rcx
call   1050 <spfn_test@plt>
lea    0xea7(%rip),%rdi
lea    0xe26(%rip),%rsi
mov    $0xffffcfc7,%edx
lea    0xe2a(%rip),%rcx
call   1050 <spfn_test@plt>
lea    0xf82(%rip),%rdi
lea    0xe22(%rip),%rsi
mov    $0x3039,%edx
lea    0xe1c(%rip),%rcx
call   1050 <spfn_test@plt>
lea    0xe7d(%rip),%rdi
lea    0xe03(%rip),%rsi
mov    $0xffffcfc7,%edx
lea    0xdec(%rip),%rcx
call   1050 <spfn_test@plt>
lea    0xe6c(%rip),%rdi
lea    0xdf5(%rip),%rsi
mov    $0x3039,%edx
lea    0xdef(%rip),%rcx
call   1050 <spfn_test@plt>
lea    0xdee(%rip),%rdi
lea    0xdd6(%rip),%rsi
mov    $0xffffcfc7,%edx
lea    0xdde(%rip),%rcx
call   1050 <spfn_test@plt>
lea    0xddd(%rip),%rdi
lea    0xdd9(%rip),%rsi
mov    $0x3039,%edx
lea    0xdd4(%rip),%rcx
call   1050 <spfn_test@plt>
lea    0xdd3(%rip),%rdi
lea    0xdba(%rip),%rsi
mov    $0xffffcfc7,%edx
lea    0xda0(%rip),%rcx
call   1050 <spfn_test@plt>
lea    0xdb7(%rip),%rdi
lea    0xdb3(%rip),%rsi
mov    $0x3039,%edx
lea    0xd96(%rip),%rcx
call   1050 <spfn_test@plt>
lea    0xda2(%rip),%rdi
lea    0xd94(%rip),%rsi
mov    $0xffffcfc7,%edx
lea    0xd62(%rip),%rcx
call   1050 <spfn_test@plt>
lea    0xd86(%rip),%rdi
lea    0xd82(%rip),%rsi
mov    $0x3039,%edx
lea    0xd08(%rip),%rcx
call   1050 <spfn_test@plt>
lea    0xd70(%rip),%rdi
lea    0xd63(%rip),%rsi
mov    $0xffffcfc7,%edx
lea    0xcf4(%rip),%rcx
call   1050 <spfn_test@plt>
lea    0xe4b(%rip),%rdi
lea    0xd4d(%rip),%rsi
mov    $0x3039,%edx
lea    0xd47(%rip),%rcx
call   1050 <spfn_test@plt>
lea    0xd46(%rip),%rdi
lea    0xd2e(%rip),%rsi
mov    $0xffffcfc7,%edx
lea    0xd36(%rip),%rcx
call   1050 <spfn_test@plt>
lea    0xd35(%rip),%rdi
lea    0xd31(%rip),%rsi
mov    $0x2def,%edx
lea    0xd37(%rip),%rcx
call   1050 <spfn_test@plt>
lea    0xd1c(%rip),%rdi
lea    0xd18(%rip),%rsi
mov    $0x2def,%edx
lea    0xd45(%rip),%rcx
call   1050 <spfn_test@plt>
lea    0xd03(%rip),%rdi
lea    0xcff(%rip),%rsi
mov    $0x2def,%edx
lea    0xcf7(%rip),%rcx
call   1050 <spfn_test@plt>
lea    0xcf2(%rip),%rdi
lea    0xcee(%rip),%rsi
mov    $0x2def,%edx
lea    0xd41(%rip),%rcx
call   1050 <spfn_test@plt>
lea    0xcda(%rip),%rdi
lea    0xcd6(%rip),%rsi
mov    $0x2def,%edx
lea    0xd22(%rip),%rcx
call   1050 <spfn_test@plt>
lea    0xcc3(%rip),%rdi
lea    0xcbf(%rip),%rsi
mov    $0x2def,%edx
lea    0xd03(%rip),%rcx
call   1050 <spfn_test@plt>
lea    0xcac(%rip),%rdi
lea    0xca0(%rip),%rsi
mov    $0x2def,%edx
lea    0xce4(%rip),%rcx
call   1050 <spfn_test@plt>
lea    0xc90(%rip),%rdi
lea    0xc8c(%rip),%rsi
mov    $0x2def,%edx
lea    0xc85(%rip),%rcx
call   1050 <spfn_test@plt>
lea    0xc84(%rip),%rdi
lea    0xc80(%rip),%rsi
mov    $0x2def,%edx
lea    0xc7a(%rip),%rcx
call   1050 <spfn_test@plt>
lea    0xc79(%rip),%rdi
lea    0xc75(%rip),%rsi
mov    $0x2def,%edx
lea    0xc6f(%rip),%rcx
call   1050 <spfn_test@plt>
lea    0xc6e(%rip),%rdi
lea    0xc6a(%rip),%rsi
mov    $0x2def,%edx
lea    0xc64(%rip),%rcx
call   1050 <spfn_test@plt>
lea    0xc63(%rip),%rdi
lea    0xc5f(%rip),%rsi
mov    $0x2def,%edx
lea    0xc5a(%rip),%rcx
call   1050 <spfn_test@plt>
lea    0xc59(%rip),%rdi
lea    0xc55(%rip),%rsi
mov    $0x2def,%edx
lea    0xc50(%rip),%rcx
call   1050 <spfn_test@plt>
lea    0xc4f(%rip),%rdi
lea    0xc4b(%rip),%rsi
mov    $0x10f,%edx
lea    0xc66(%rip),%rcx
call   1050 <spfn_test@plt>
lea    0xc36(%rip),%rdi
lea    0xc32(%rip),%rsi
mov    $0x10f,%edx
lea    0xc46(%rip),%rcx
call   1050 <spfn_test@plt>
lea    0xc1e(%rip),%rdi
lea    0xc1a(%rip),%rsi
mov    $0x10f,%edx
lea    0xc27(%rip),%rcx
call   1050 <spfn_test@plt>
lea    0xab7(%rip),%rdi
lea    0xc00(%rip),%rsi
mov    $0x10f,%edx
lea    0xc08(%rip),%rcx
call   1050 <spfn_test@plt>
lea    0xbed(%rip),%rdi
lea    0xbe9(%rip),%rsi
mov    $0x10f,%edx
lea    0xbe3(%rip),%rcx
call   1050 <spfn_test@plt>
lea    0xbe2(%rip),%rdi
lea    0xbde(%rip),%rsi
mov    $0x10f,%edx
lea    0xbd9(%rip),%rcx
call   1050 <spfn_test@plt>
lea    0xbd8(%rip),%rdi
lea    0xbd4(%rip),%rsi
mov    $0x10f,%edx
lea    0xbcf(%rip),%rcx
call   1050 <spfn_test@plt>
lea    0xbce(%rip),%rdi
lea    0xa20(%rip),%rsi
xor    %edx,%edx
lea    0xa5c(%rip),%rcx
call   1050 <spfn_test@plt>
lea    0xbb5(%rip),%rdi
lea    0xb56(%rip),%rsi
xor    %edx,%edx
lea    0xa40(%rip),%rcx
call   1050 <spfn_test@plt>
lea    0xb9c(%rip),%rdi
lea    0xa8d(%rip),%rsi
xor    %edx,%edx
lea    0xa24(%rip),%rcx
call   1050 <spfn_test@plt>
lea    0xb83(%rip),%rdi
lea    0xb7f(%rip),%rsi
mov    $0x61,%edx
lea    0xb87(%rip),%rcx
call   1050 <spfn_test@plt>
lea    0xb6a(%rip),%rdi
lea    0xb66(%rip),%rsi
mov    $0x61,%edx
lea    0xb5f(%rip),%rcx
call   1050 <spfn_test@plt>
lea    0xb5e(%rip),%rdi
lea    0xb5a(%rip),%rsi
mov    $0x61,%edx
lea    0xb54(%rip),%rcx
call   1050 <spfn_test@plt>
lea    0xb53(%rip),%rdi
lea    0xb4f(%rip),%rsi
lea    0xb5a(%rip),%rcx
mov    %rcx,%rdx
call   1030 <spfs_test@plt>
lea    0xb3c(%rip),%rdi
lea    0xb38(%rip),%rsi
lea    0xb3d(%rip),%rdx
lea    0xb2f(%rip),%rcx
call   1030 <spfs_test@plt>
lea    0xb2e(%rip),%rdi
lea    0xb2a(%rip),%rsi
lea    0xb1c(%rip),%rdx
lea    0xb22(%rip),%rcx
call   1030 <spfs_test@plt>
lea    0xb21(%rip),%rdi
lea    0xb1d(%rip),%rsi
mov    $0x3039,%edx
lea    0x915(%rip),%rcx
call   1050 <spfn_test@plt>
lea    0xb09(%rip),%rdi
lea    0xb05(%rip),%rsi
mov    $0x3039,%edx
lea    0x8f6(%rip),%rcx
call   1050 <spfn_test@plt>
lea    0xae3(%rip),%rdi
lea    0xaeb(%rip),%rsi
mov    $0xabc,%edx
lea    0xae4(%rip),%rcx
call   1050 <spfn_test@plt>
lea    0xade(%rip),%rdi
lea    0xada(%rip),%rsi
lea    0xa9e(%rip),%rcx
mov    %rcx,%rdx
call   1030 <spfs_test@plt>
lea    0xac8(%rip),%rdi
lea    0xac4(%rip),%rsi
lea    0xa81(%rip),%rcx
mov    %rcx,%rdx
call   1030 <spfs_test@plt>
pop    %rbp
ret

x86 assembly (clang, -O2):
<test_sprintf>:
push   %rbp
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
push   %rax
lea    0xebe(%rip),%rdi
call   1040 <pr@plt>
lea    0xf0d(%rip),%rdi
lea    0xeb3(%rip),%r15
lea    0xebd(%rip),%rcx
mov    %r15,%rsi
mov    $0x3039,%edx
call   1050 <spfn_test@plt>
lea    0xf00(%rip),%rdi
lea    0xeac(%rip),%r12
mov    %r15,%rsi
mov    $0xffffcfc7,%edx
mov    %r12,%rcx
call   1050 <spfn_test@plt>
lea    0xee5(%rip),%rdi
lea    0xe76(%rip),%rbx
lea    0xe98(%rip),%rcx
mov    %rbx,%rsi
mov    $0x3039,%edx
call   1050 <spfn_test@plt>
lea    0xecd(%rip),%rdi
mov    %rbx,%rsi
mov    $0xffffcfc7,%edx
mov    %r12,%rcx
call   1050 <spfn_test@plt>
lea    0xeb9(%rip),%rdi
lea    0xe41(%rip),%rbx
lea    0xe3f(%rip),%r12
mov    %rbx,%rsi
mov    $0x3039,%edx
mov    %r12,%rcx
call   1050 <spfn_test@plt>
lea    0xe9d(%rip),%rdi
lea    0xe2c(%rip),%r13
mov    %rbx,%rsi
mov    $0xffffcfc7,%edx
mov    %r13,%rcx
call   1050 <spfn_test@plt>
lea    0xf79(%rip),%rdi
lea    0xe19(%rip),%rbx
lea    0xe18(%rip),%rcx
mov    %rbx,%rsi
mov    $0x3039,%edx
call   1050 <spfn_test@plt>
lea    0xe71(%rip),%rdi
mov    %rbx,%rsi
mov    $0xffffcfc7,%edx
mov    %r13,%rcx
call   1050 <spfn_test@plt>
lea    0xe68(%rip),%rdi
lea    0xdf1(%rip),%rbp
lea    0xdf0(%rip),%rcx
mov    %rbp,%rsi
mov    $0x3039,%edx
call   1050 <spfn_test@plt>
lea    0xde7(%rip),%rdi
lea    0xde3(%rip),%rbx
mov    %rbp,%rsi
mov    $0xffffcfc7,%edx
mov    %rbx,%rcx
call   1050 <spfn_test@plt>
lea    0xdd7(%rip),%rdi
lea    0xdd3(%rip),%rbp
lea    0xdd3(%rip),%r14
mov    %rbp,%rsi
mov    $0x3039,%edx
mov    %r14,%rcx
call   1050 <spfn_test@plt>
lea    0xdc7(%rip),%rdi
mov    %rbp,%rsi
mov    $0xffffcfc7,%edx
mov    %rbx,%rcx
call   1050 <spfn_test@plt>
lea    0xdb3(%rip),%rdi
lea    0xdaf(%rip),%rbp
mov    %rbp,%rsi
mov    $0x3039,%edx
mov    %r14,%rcx
call   1050 <spfn_test@plt>
lea    0xd9f(%rip),%rdi
mov    %rbp,%rsi
mov    $0xffffcfc7,%edx
mov    %rbx,%rcx
call   1050 <spfn_test@plt>
lea    0xd8b(%rip),%rdi
lea    0xd87(%rip),%rbx
mov    %rbx,%rsi
mov    $0x3039,%edx
mov    %r12,%rcx
call   1050 <spfn_test@plt>
lea    0xd76(%rip),%rdi
mov    %rbx,%rsi
mov    $0xffffcfc7,%edx
mov    %r13,%rcx
call   1050 <spfn_test@plt>
lea    0xe59(%rip),%rdi
lea    0xd5b(%rip),%rbx
lea    0xd5a(%rip),%rcx
mov    %rbx,%rsi
mov    $0x3039,%edx
call   1050 <spfn_test@plt>
lea    0xd51(%rip),%rdi
lea    0xd4d(%rip),%rcx
mov    %rbx,%rsi
mov    $0xffffcfc7,%edx
call   1050 <spfn_test@plt>
lea    0xd44(%rip),%rdi
lea    0xd40(%rip),%r12
lea    0xd4b(%rip),%rcx
mov    %r12,%rsi
mov    $0x2def,%edx
call   1050 <spfn_test@plt>
lea    0xd28(%rip),%rdi
lea    0xd24(%rip),%rsi
lea    0xd56(%rip),%rcx
mov    $0x2def,%edx
call   1050 <spfn_test@plt>
lea    0xd0f(%rip),%rdi
lea    0xd0b(%rip),%rsi
lea    0xd08(%rip),%rcx
mov    $0x2def,%edx
call   1050 <spfn_test@plt>
lea    0xcfe(%rip),%rdi
lea    0xcfa(%rip),%rsi
lea    0xd52(%rip),%rbx
mov    $0x2def,%edx
mov    %rbx,%rcx
call   1050 <spfn_test@plt>
lea    0xce3(%rip),%rdi
lea    0xcdf(%rip),%rsi
mov    $0x2def,%edx
mov    %rbx,%rcx
call   1050 <spfn_test@plt>
lea    0xcd0(%rip),%rdi
lea    0xccc(%rip),%rbp
mov    %rbp,%rsi
mov    $0x2def,%edx
mov    %rbx,%rcx
call   1050 <spfn_test@plt>
lea    0xcba(%rip),%rdi
mov    %rbp,%rsi
mov    $0x2def,%edx
mov    %rbx,%rcx
call   1050 <spfn_test@plt>
lea    0xca6(%rip),%rdi
lea    0xca2(%rip),%rsi
lea    0xca0(%rip),%rcx
mov    $0x2def,%edx
call   1050 <spfn_test@plt>
lea    0xc9a(%rip),%rdi
lea    0xc96(%rip),%rsi
lea    0xc95(%rip),%rcx
mov    $0x2def,%edx
call   1050 <spfn_test@plt>
lea    0xc8f(%rip),%rdi
lea    0xc8b(%rip),%rsi
lea    0xc8a(%rip),%rcx
mov    $0x2def,%edx
call   1050 <spfn_test@plt>
lea    0xc84(%rip),%rdi
lea    0xc80(%rip),%rsi
lea    0xc7f(%rip),%rcx
mov    $0x2def,%edx
call   1050 <spfn_test@plt>
lea    0xc79(%rip),%rdi
lea    0xc75(%rip),%rsi
lea    0xc75(%rip),%rcx
mov    $0x2def,%edx
call   1050 <spfn_test@plt>
lea    0xc6f(%rip),%rdi
lea    0xc6b(%rip),%rsi
lea    0xc6b(%rip),%rcx
mov    $0x2def,%edx
call   1050 <spfn_test@plt>
lea    0xc65(%rip),%rdi
lea    0xc61(%rip),%rbx
lea    0xc81(%rip),%rcx
mov    %rbx,%rsi
mov    $0x10f,%edx
call   1050 <spfn_test@plt>
lea    0xc49(%rip),%rdi
lea    0xc45(%rip),%rsi
lea    0xc5e(%rip),%rbp
mov    $0x10f,%edx
mov    %rbp,%rcx
call   1050 <spfn_test@plt>
lea    0xc2e(%rip),%rdi
lea    0xc2a(%rip),%rsi
mov    $0x10f,%edx
mov    %rbp,%rcx
call   1050 <spfn_test@plt>
lea    0xacb(%rip),%rdi
lea    0xc14(%rip),%rsi
mov    $0x10f,%edx
mov    %rbp,%rcx
call   1050 <spfn_test@plt>
lea    0xc05(%rip),%rdi
lea    0xc01(%rip),%rsi
lea    0xc00(%rip),%rcx
mov    $0x10f,%edx
call   1050 <spfn_test@plt>
lea    0xbfa(%rip),%rdi
lea    0xbf6(%rip),%rsi
lea    0xbf6(%rip),%rcx
mov    $0x10f,%edx
call   1050 <spfn_test@plt>
lea    0xbf0(%rip),%rdi
lea    0xbec(%rip),%rsi
lea    0xbec(%rip),%rcx
mov    $0x10f,%edx
call   1050 <spfn_test@plt>
lea    0xbe6(%rip),%rdi
lea    0xa7d(%rip),%rbp
mov    %r15,%rsi
xor    %edx,%edx
mov    %rbp,%rcx
call   1050 <spfn_test@plt>
lea    0xbce(%rip),%rdi
mov    %rbx,%rsi
xor    %edx,%edx
mov    %rbp,%rcx
call   1050 <spfn_test@plt>
lea    0xbbd(%rip),%rdi
mov    %r12,%rsi
xor    %edx,%edx
mov    %rbp,%rcx
call   1050 <spfn_test@plt>
lea    0xbac(%rip),%rdi
lea    0xba8(%rip),%rsi
lea    0xbb5(%rip),%rcx
mov    $0x61,%edx
call   1050 <spfn_test@plt>
lea    0xb93(%rip),%rdi
lea    0xb8f(%rip),%rsi
lea    0xb8d(%rip),%rcx
mov    $0x61,%edx
call   1050 <spfn_test@plt>
lea    0xb87(%rip),%rdi
lea    0xb83(%rip),%rsi
lea    0xb82(%rip),%rcx
mov    $0x61,%edx
call   1050 <spfn_test@plt>
lea    0xb7c(%rip),%rdi
lea    0xb78(%rip),%rsi
lea    0xb83(%rip),%rbx
mov    %rbx,%rdx
mov    %rbx,%rcx
call   1030 <spfs_test@plt>
lea    0xb62(%rip),%rdi
lea    0xb5e(%rip),%rsi
lea    0xb5c(%rip),%rcx
mov    %rbx,%rdx
call   1030 <spfs_test@plt>
lea    0xb58(%rip),%rdi
lea    0xb54(%rip),%rsi
lea    0xb53(%rip),%rcx
mov    %rbx,%rdx
call   1030 <spfs_test@plt>
lea    0xb4f(%rip),%r14
lea    0xb4b(%rip),%rsi
mov    %r14,%rdi
mov    $0x3039,%edx
lea    0x940(%rip),%rbp
mov    %rbp,%rcx
call   1050 <spfn_test@plt>
lea    0xb31(%rip),%rdi
lea    0xb2d(%rip),%rsi
mov    $0x3039,%edx
mov    %rbp,%rcx
call   1050 <spfn_test@plt>
lea    0xb1e(%rip),%rsi
lea    0xb1c(%rip),%rcx
mov    %r14,%rdi
mov    $0xabc,%edx
call   1050 <spfn_test@plt>
lea    0xb0e(%rip),%rdi
lea    0xb0a(%rip),%rsi
mov    %rbx,%rdx
mov    %rbx,%rcx
call   1030 <spfs_test@plt>
lea    0xafc(%rip),%rdi
lea    0xaf8(%rip),%rsi
mov    %rbx,%rdx
mov    %rbx,%rcx
add    $0x8,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
jmp    1030 <spfs_test@plt>

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

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