Summary:
Alias 'jic $reg, 0' to 'jrc $reg' and 'jialc $reg, 0' to 'jalrc $reg' like
binutils.
This patch was previous committed as r266055 as seemed to have caused some spurious
test failures. They did not reappear after further local testing.
llvm-svn: 266301
diff --git a/llvm/test/CodeGen/Mips/llvm-ir/call.ll b/llvm/test/CodeGen/Mips/llvm-ir/call.ll
index da3ffaf..063b746 100644
--- a/llvm/test/CodeGen/Mips/llvm-ir/call.ll
+++ b/llvm/test/CodeGen/Mips/llvm-ir/call.ll
@@ -26,9 +26,10 @@
; N64: ld $[[TGT:[0-9]+]], %call16(extern_void_void)($gp)
; NOT-R6C: jalr $[[TGT]]
-; R6C: jialc $[[TGT]], 0
+; R6C: jalrc $[[TGT]]
call void @extern_void_void()
+; R6C: jrc $ra
ret i32 0
}
@@ -40,10 +41,11 @@
; N64: ld $[[TGT:[0-9]+]], %call16(extern_i32_void)($gp)
; NOT-R6C: jalr $[[TGT]]
-; R6C: jialc $[[TGT]], 0
+; R6C: jalrc $[[TGT]]
%1 = call i32 @extern_i32_void()
%2 = add i32 %1, 1
+; R6C: jrc $ra
ret i32 %2
}
@@ -58,11 +60,12 @@
; N64: ld $[[TGT:[0-9]+]], %call16(extern_float_void)($gp)
; NOT-R6C: jalr $[[TGT]]
-; R6C: jialc $[[TGT]], 0
+; R6C: jalrc $[[TGT]]
%1 = call float @extern_float_void()
%2 = fadd float %1, 1.0
+; R6C: jrc $ra
ret float %2
}
@@ -110,10 +113,10 @@
; ALL: move $25, $4
; NOT-R6C: jalr $25
-; R6C: jialc $25, 0
-
+; R6C: jalrc $25
call void %addr()
+; R6C: jrc $ra
ret i32 0
}
@@ -122,11 +125,12 @@
; ALL: move $25, $4
; NOT-R6C: jalr $25
-; R6C: jialc $25, 0
+; R6C: jalrc $25
%1 = call i32 %addr()
%2 = add i32 %1, 1
+; R6C: jrc $ra
ret i32 %2
}
@@ -135,11 +139,12 @@
; ALL: move $25, $4
; NOT-R6C: jalr $25
-; R6C: jialc $25, 0
+; R6C: jalrc $25
%1 = call float %addr()
%2 = fadd float %1, 1.0
+; R6C: jrc $ra
ret float %2
}
@@ -197,10 +202,11 @@
; ALL: addiu $[[TGT:[0-9]+]], $zero, 1234
; ALL-NOT: {{jal }}
; NOT-R6C: jalr $[[TGT]]
-; R6C: jialc $[[TGT]], 0
+; R6C: jalrc $[[TGT]]
; ALL-NOT: {{jal }}
call void () inttoptr (i32 1234 to void ()*)()
+; R6C: jrc $ra
ret i32 0
}