mirror of
https://github.com/Ed94/Odin.git
synced 2026-06-13 01:21:38 -07:00
49 lines
1.5 KiB
LLVM
49 lines
1.5 KiB
LLVM
%.string = type {i8*, i64} ; Basic_string
|
|
|
|
%.rawptr = type i8* ; Basic_rawptr
|
|
|
|
declare void @llvm.memmove.p0i8.p0i8.i64(i8*, i8*, i64, i32, i1)
|
|
|
|
declare void @putchar(i32 %c) ; foreign procedure
|
|
|
|
define void @main() {
|
|
entry.-.0:
|
|
%0 = alloca <8 x i1>, align 8 ; v
|
|
store <8 x i1> zeroinitializer, <8 x i1>* %0
|
|
%1 = alloca <8 x i1>, align 8
|
|
store <8 x i1> zeroinitializer, <8 x i1>* %1
|
|
%2 = load <8 x i1>, <8 x i1>* %1, align 8
|
|
%3 = insertelement <8 x i1> %2, i1 true, i64 0
|
|
%4 = insertelement <8 x i1> %3, i1 false, i64 1
|
|
%5 = insertelement <8 x i1> %4, i1 true, i64 2
|
|
%6 = insertelement <8 x i1> %5, i1 false, i64 3
|
|
%7 = insertelement <8 x i1> %6, i1 true, i64 4
|
|
%8 = insertelement <8 x i1> %7, i1 false, i64 5
|
|
%9 = insertelement <8 x i1> %8, i1 true, i64 6
|
|
%10 = insertelement <8 x i1> %9, i1 false, i64 7
|
|
store <8 x i1> %10, <8 x i1>* %0
|
|
%11 = load <8 x i1>, <8 x i1>* %0, align 8
|
|
%12 = extractelement <8 x i1> %11, i64 0
|
|
%13 = zext i1 %12 to i32
|
|
%14 = add i32 %13, 65
|
|
call void @putchar(i32 %14)
|
|
%15 = load <8 x i1>, <8 x i1>* %0, align 8
|
|
%16 = extractelement <8 x i1> %15, i64 1
|
|
%17 = zext i1 %16 to i32
|
|
%18 = add i32 %17, 65
|
|
call void @putchar(i32 %18)
|
|
%19 = load <8 x i1>, <8 x i1>* %0, align 8
|
|
%20 = extractelement <8 x i1> %19, i64 2
|
|
%21 = zext i1 %20 to i32
|
|
%22 = add i32 %21, 65
|
|
call void @putchar(i32 %22)
|
|
%23 = load <8 x i1>, <8 x i1>* %0, align 8
|
|
%24 = extractelement <8 x i1> %23, i64 3
|
|
%25 = zext i1 %24 to i32
|
|
%26 = add i32 %25, 65
|
|
call void @putchar(i32 %26)
|
|
call void @putchar(i32 10)
|
|
ret void
|
|
}
|
|
|