#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*/ printf(char *);
void show_eci(void) {
  printf("  3: ISO/IEC 8859-1 - Latin alphabet No. 1 (default)\n"
         "  4: ISO/IEC 8859-2 - Latin alphabet No. 2\n"
         "  5: ISO/IEC 8859-3 - Latin alphabet No. 3\n"
         "  6: ISO/IEC 8859-4 - Latin alphabet No. 4\n"
         "  7: ISO/IEC 8859-5 - Latin/Cyrillic alphabet\n"
         "  8: ISO/IEC 8859-6 - Latin/Arabic alphabet\n"
         "  9: ISO/IEC 8859-7 - Latin/Greek alphabet\n"
         " 10: ISO/IEC 8859-8 - Latin/Hebrew alphabet\n"
         " 11: ISO/IEC 8859-9 - Latin alphabet No. 5 (Turkish)\n"
         " 12: ISO/IEC 8859-10 - Latin alphabet No. 6 (Nordic)\n"
         " 13: ISO/IEC 8859-11 - Latin/Thai alphabet\n"
         " 15: ISO/IEC 8859-13 - Latin alphabet No. 7 (Baltic)\n"
         " 16: ISO/IEC 8859-14 - Latin alphabet No. 8 (Celtic)\n"
         " 17: ISO/IEC 8859-15 - Latin alphabet No. 9\n"
         " 18: ISO/IEC 8859-16 - Latin alphabet No. 10\n"
         " 20: Shift JIS (JIS X 0208 and JIS X 0201)\n"
         " 21: Windows 1250 - Latin 2 (Central Europe)\n"
         " 22: Windows 1251 - Cyrillic\n"
         " 23: Windows 1252 - Latin 1\n"
         " 24: Windows 1256 - Arabic\n"
         " 25: UCS-2BE (High order byte first) (Unicode BMP)\n"
         " 26: UTF-8 (Unicode)\n"
         " 27: ISO/IEC 646:1991 7-bit character set (ASCII)\n"
         " 28: Big5 (Taiwan) Chinese Character Set\n"
         " 29: ** GB (PRC) Chinese Character Set\n"
         " 30: Korean Character Set EUC-KR (KS X 1001:2002)\n"
         "899: 8-bit binary data\n"
         "** ECI 29 is GB 2312 except for Han Xin, when it is GB 18030\n");
}


x86 assembly (clang, -O0):
<show_eci>:
push   %rbp
mov    %rsp,%rbp
lea    0xee5(%rip),%rdi
call   1030 <printf@plt>
pop    %rbp
ret

x86 assembly (clang, -O2):
<show_eci>:
lea    0xee9(%rip),%rdi
jmp    1030 <puts@plt>

LLVM IR (-O0):
@.str = [1212 x i8] c" 3: ISO/IEC 8859-1 - Latin alphabet No. 1 (default)\0A 4: ISO/IEC 8859-2 - Latin alphabet No. 2\0A 5: ISO/IEC 8859-3 - Latin alphabet No. 3\0A 6: ISO/IEC 8859-4 - Latin alphabet No. 4\0A 7: ISO/IEC 8859-5 - Latin/Cyrillic alphabet\0A 8: ISO/IEC 8859-6 - Latin/Arabic alphabet\0A 9: ISO/IEC 8859-7 - Latin/Greek alphabet\0A 10: ISO/IEC 8859-8 - Latin/Hebrew alphabet\0A 11: ISO/IEC 8859-9 - Latin alphabet No. 5 (Turkish)\0A 12: ISO/IEC 8859-10 - Latin alphabet No. 6 (Nordic)\0A 13: ISO/IEC 8859-11 - Latin/Thai alphabet\0A 15: ISO/IEC 8859-13 - Latin alphabet No. 7 (Baltic)\0A 16: ISO/IEC 8859-14 - Latin alphabet No. 8 (Celtic)\0A 17: ISO/IEC 8859-15 - Latin alphabet No. 9\0A 18: ISO/IEC 8859-16 - Latin alphabet No. 10\0A 20: Shift JIS (JIS X 0208 and JIS X 0201)\0A 21: Windows 1250 - Latin 2 (Central Europe)\0A 22: Windows 1251 - Cyrillic\0A 23: Windows 1252 - Latin 1\0A 24: Windows 1256 - Arabic\0A 25: UCS-2BE (High order byte first) (Unicode BMP)\0A 26: UTF-8 (Unicode)\0A 27: ISO/IEC 646:1991 7-bit character set (ASCII)\0A 28: Big5 (Taiwan) Chinese Character Set\0A 29: ** GB (PRC) Chinese Character Set\0A 30: Korean Character Set EUC-KR (KS X 1001:2002)\0A899: 8-bit binary data\0A** ECI 29 is GB 2312 except for Han Xin, when it is GB 18030\0A\00"
define void @show_eci() {
%1 = call i32 @printf(i8* getelementptr inbounds ([1212 x i8], [1212 x i8]* @.str, i64 0, i64 0))
ret void
}

LLVM IR (-O2):
@str = [1211 x i8] c" 3: ISO/IEC 8859-1 - Latin alphabet No. 1 (default)\0A 4: ISO/IEC 8859-2 - Latin alphabet No. 2\0A 5: ISO/IEC 8859-3 - Latin alphabet No. 3\0A 6: ISO/IEC 8859-4 - Latin alphabet No. 4\0A 7: ISO/IEC 8859-5 - Latin/Cyrillic alphabet\0A 8: ISO/IEC 8859-6 - Latin/Arabic alphabet\0A 9: ISO/IEC 8859-7 - Latin/Greek alphabet\0A 10: ISO/IEC 8859-8 - Latin/Hebrew alphabet\0A 11: ISO/IEC 8859-9 - Latin alphabet No. 5 (Turkish)\0A 12: ISO/IEC 8859-10 - Latin alphabet No. 6 (Nordic)\0A 13: ISO/IEC 8859-11 - Latin/Thai alphabet\0A 15: ISO/IEC 8859-13 - Latin alphabet No. 7 (Baltic)\0A 16: ISO/IEC 8859-14 - Latin alphabet No. 8 (Celtic)\0A 17: ISO/IEC 8859-15 - Latin alphabet No. 9\0A 18: ISO/IEC 8859-16 - Latin alphabet No. 10\0A 20: Shift JIS (JIS X 0208 and JIS X 0201)\0A 21: Windows 1250 - Latin 2 (Central Europe)\0A 22: Windows 1251 - Cyrillic\0A 23: Windows 1252 - Latin 1\0A 24: Windows 1256 - Arabic\0A 25: UCS-2BE (High order byte first) (Unicode BMP)\0A 26: UTF-8 (Unicode)\0A 27: ISO/IEC 646:1991 7-bit character set (ASCII)\0A 28: Big5 (Taiwan) Chinese Character Set\0A 29: ** GB (PRC) Chinese Character Set\0A 30: Korean Character Set EUC-KR (KS X 1001:2002)\0A899: 8-bit binary data\0A** ECI 29 is GB 2312 except for Han Xin, when it is GB 18030\00"
define void @show_eci() {
%1 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([1211 x i8], [1211 x i8]* @str, i64 0, i64 0))
ret void
}