blob: fed97e540cdbb692a3aeaeb2e15a49b2c1c50d95 [file] [log] [blame]
Jonas Paulsson88c1cd82021-12-07 18:34:26 -06001; RUN: llc < %s -mtriple=s390x-linux-gnu -mcpu=z14 | FileCheck %s
2;
3; Test that a spill/reload of a VR32/VR64 reg uses the FP opcode supporting
4; 20-bit displacement if needed and possible.
5
6define void @f1(i32 %arg, ...) {
7; CHECK-LABEL: f1:
8; CHECK-NOT: lay
9; CHECK: stdy %f0, 4400(%r15)
10bb:
11 %i = alloca [4096 x i8]
12 ret void
13}
14
15define void @f2(float %Arg) {
16; CHECK-LABEL: f2:
17; CHECK-NOT: lay
18; CHECK: stey %f0, 4172(%r15)
19bb:
20 %i = alloca [1000 x float]
Kai Nackea1710eb2022-10-11 20:59:16 +000021 %i2 = getelementptr inbounds [1000 x float], ptr %i, i64 0, i64 999
Jonas Paulsson88c1cd82021-12-07 18:34:26 -060022 br i1 undef, label %bb3, label %bb2
23
24bb2:
Kai Nackea1710eb2022-10-11 20:59:16 +000025 store float %Arg , ptr %i2
Jonas Paulsson88c1cd82021-12-07 18:34:26 -060026 br label %bb3
27
28bb3:
29 ret void
30}
31
Kai Nackea1710eb2022-10-11 20:59:16 +000032define void @f3(ptr %Dst) {
Jonas Paulsson88c1cd82021-12-07 18:34:26 -060033; CHECK-LABEL: f3:
34; CHECK-NOT: lay
35; CHECK: ldy %f0, 4168(%r15)
36bb:
37 %i = alloca [500 x double]
38 br i1 undef, label %bb3, label %bb2
39
40bb2:
Kai Nackea1710eb2022-10-11 20:59:16 +000041 %i12 = getelementptr inbounds [500 x double], ptr %i, i64 0, i64 499
42 %i13 = load double, ptr %i12
Jonas Paulsson88c1cd82021-12-07 18:34:26 -060043 %i14 = fdiv double %i13, 0.000000e+00
Kai Nackea1710eb2022-10-11 20:59:16 +000044 store double %i14, ptr %Dst
Jonas Paulsson88c1cd82021-12-07 18:34:26 -060045 br label %bb3
46
47bb3:
48 ret void
49}
50
Kai Nackea1710eb2022-10-11 20:59:16 +000051define void @f4(ptr %Dst) {
Jonas Paulsson88c1cd82021-12-07 18:34:26 -060052; CHECK-LABEL: f4:
53; CHECK-NOT: lay
54; CHECK: ley %f0, 4172(%r15)
55bb:
56 %i = alloca [1000 x float]
57 br i1 undef, label %bb3, label %bb2
58
59bb2:
Kai Nackea1710eb2022-10-11 20:59:16 +000060 %i12 = getelementptr inbounds [1000 x float], ptr %i, i64 0, i64 999
61 %i13 = load float, ptr %i12
Jonas Paulsson88c1cd82021-12-07 18:34:26 -060062 %i14 = fdiv float %i13, 0.000000e+00
Kai Nackea1710eb2022-10-11 20:59:16 +000063 store float %i14, ptr %Dst
Jonas Paulsson88c1cd82021-12-07 18:34:26 -060064 br label %bb3
65
66bb3:
67 ret void
68}