Почему первый блок кода действителен, а второй - нет? Когда я смотрю документы, я вижу, что %0
использовалось много раз, но когда я пытаюсь использовать его (по порядку), я получаю сообщение об ошибке от llc
:
llc: error: llc: test.ll:2:2: error: instruction expected to be numbered '%1'
%0 = add i64 %x, %y
^
define i64 @add(i64 %x, i64 %y) {
%1 = add i64 %x, %y
ret i64 %1
}
define i64 @main() {
ret i64 0
}
define i64 @add(i64 %x, i64 %y) {
%0 = add i64 %x, %y
ret i64 %0
}
define i64 @main() {
ret i64 0
}