Kai Nacke a1710eb3cd [SystemZ][NFC] Opaque pointer migration.
The LIT test cases were migrated with the script provided by
Nikita Popov.

No manual changes were made. Committed without review since
no functional changes, after consultation with uweigand.
2022-10-11 21:09:43 +00:00

34 lines
707 B
LLVM

; Test moves between FPRs.
;
; RUN: llc < %s -mtriple=s390x-linux-gnu -mcpu=z10 | FileCheck %s
; Test f32 moves.
define float @f1(float %a, float %b) {
; CHECK-LABEL: f1:
; CHECK: ler %f0, %f2
; CHECK: br %r14
ret float %b
}
; Test f64 moves.
define double @f2(double %a, double %b) {
; CHECK-LABEL: f2:
; CHECK: ldr %f0, %f2
; CHECK: br %r14
ret double %b
}
; Test f128 moves. Since f128s are passed by reference, we need to force
; a copy by other means.
define void @f3(ptr %x) {
; CHECK-LABEL: f3:
; CHECK: lxr
; CHECK: axbr
; CHECK: br %r14
%val = load volatile fp128, ptr %x
%sum = fadd fp128 %val, %val
store volatile fp128 %sum, ptr %x
store volatile fp128 %val, ptr %x
ret void
}