
; Function Attrs: nounwind
define internal { i64, i64 } @split(i64 %0) #0 {
entry:
  %alloca = alloca i64, align 8
  store i64 %0, ptr %alloca, align 8
  %load = load i64, ptr %alloca, align 8
  %asm = call { i64, i64 } asm "        and ${0}, ${2}, #0xff\0A        lsr ${1}, ${2}, #8\0A", "=r,=r,r"(i64 %load)
  %tg = extractvalue { i64, i64 } %asm, 0
  %tgN = extractvalue { i64, i64 } %asm, 1
  %ti = insertvalue { i64, i64 } undef, i64 %tg, 0
  %tiN = insertvalue { i64, i64 } %ti, i64 %tgN, 1
  ret { i64, i64 } %tiN
}

; Function Attrs: nounwind
define i32 @main() #0 {
entry:
  %call = call { i64, i64 } @split(i64 4660)
  %tg = extractvalue { i64, i64 } %call, 0
  %alloca = alloca i64, align 8
  store i64 %tg, ptr %alloca, align 8
  %tgN = extractvalue { i64, i64 } %call, 1
  %allocaN = alloca i64, align 8
  store i64 %tgN, ptr %allocaN, align 8
  %load = load i64, ptr %alloca, align 8
  %loadN = load i64, ptr %allocaN, align 8
  %add = add i64 %load, %loadN
  %ca.tr = trunc i64 %add to i32
  ret i32 %ca.tr
}
