|
1 | | -; Test vector maximum/minimum with a zero splat on z14. |
2 | | -; |
| 1 | +; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 5 |
| 2 | + |
3 | 3 | ; RUN: llc < %s -mtriple=s390x-linux-gnu -mcpu=z14 | FileCheck %s |
4 | 4 |
|
| 5 | +; Test vector maximum/minimum with a zero splat on z14. |
| 6 | + |
5 | 7 | define <2 x double> @f1(<2 x double> %val) { |
6 | 8 | ; CHECK-LABEL: f1: |
7 | | -; CHECK: vgbm %v0, 0 |
8 | | -; CHECK-NEXT: vfmaxdb %v24, %v24, %v0, 4 |
9 | | -; CHECK-NEXT: br %r14 |
| 9 | +; CHECK: # %bb.0: |
| 10 | +; CHECK-NEXT: vgbm %v0, 0 |
| 11 | +; CHECK-NEXT: vfmaxdb %v24, %v24, %v0, 4 |
| 12 | +; CHECK-NEXT: br %r14 |
10 | 13 | %cmp = fcmp ogt <2 x double> %val, zeroinitializer |
11 | 14 | %ret = select <2 x i1> %cmp, <2 x double> %val, <2 x double> zeroinitializer |
12 | 15 | ret <2 x double> %ret |
13 | 16 | } |
14 | 17 |
|
15 | 18 | define <2 x double> @f2(<2 x double> %val) { |
16 | 19 | ; CHECK-LABEL: f2: |
17 | | -; CHECK: vgbm %v0, 0 |
18 | | -; CHECK-NEXT: vfmindb %v24, %v24, %v0, 4 |
19 | | -; CHECK-NEXT: br %r14 |
| 20 | +; CHECK: # %bb.0: |
| 21 | +; CHECK-NEXT: vgbm %v0, 0 |
| 22 | +; CHECK-NEXT: vfmindb %v24, %v24, %v0, 4 |
| 23 | +; CHECK-NEXT: br %r14 |
20 | 24 | %cmp = fcmp olt <2 x double> %val, zeroinitializer |
21 | 25 | %ret = select <2 x i1> %cmp, <2 x double> %val, <2 x double> zeroinitializer |
22 | 26 | ret <2 x double> %ret |
23 | 27 | } |
24 | 28 |
|
25 | 29 | define <4 x float> @f3(<4 x float> %val) { |
26 | 30 | ; CHECK-LABEL: f3: |
27 | | -; CHECK: vgbm %v0, 0 |
28 | | -; CHECK-NEXT: vfmaxsb %v24, %v24, %v0, 4 |
29 | | -; CHECK-NEXT: br %r14 |
| 31 | +; CHECK: # %bb.0: |
| 32 | +; CHECK-NEXT: vgbm %v0, 0 |
| 33 | +; CHECK-NEXT: vfmaxsb %v24, %v24, %v0, 4 |
| 34 | +; CHECK-NEXT: br %r14 |
30 | 35 | %cmp = fcmp ogt <4 x float> %val, zeroinitializer |
31 | 36 | %ret = select <4 x i1> %cmp, <4 x float> %val, <4 x float> zeroinitializer |
32 | 37 | ret <4 x float> %ret |
33 | 38 | } |
34 | 39 |
|
35 | 40 | define <4 x float> @f4(<4 x float> %val) { |
36 | 41 | ; CHECK-LABEL: f4: |
37 | | -; CHECK: vgbm %v0, 0 |
38 | | -; CHECK-NEXT: vfminsb %v24, %v24, %v0, 4 |
39 | | -; CHECK-NEXT: br %r14 |
| 42 | +; CHECK: # %bb.0: |
| 43 | +; CHECK-NEXT: vgbm %v0, 0 |
| 44 | +; CHECK-NEXT: vfminsb %v24, %v24, %v0, 4 |
| 45 | +; CHECK-NEXT: br %r14 |
40 | 46 | %cmp = fcmp olt <4 x float> %val, zeroinitializer |
41 | 47 | %ret = select <4 x i1> %cmp, <4 x float> %val, <4 x float> zeroinitializer |
42 | 48 | ret <4 x float> %ret |
43 | 49 | } |
44 | 50 |
|
45 | 51 | define <2 x double> @f5(<2 x double> %val) { |
46 | 52 | ; CHECK-LABEL: f5: |
47 | | -; CHECK: vgbm %v0, 0 |
48 | | -; CHECK-NEXT: vfchedb %v1, %v0, %v24 |
49 | | -; CHECK-NEXT: vsel %v24, %v0, %v24, %v1 |
50 | | -; CHECK-NEXT: br %r14 |
| 53 | +; CHECK: # %bb.0: |
| 54 | +; CHECK-NEXT: vgbm %v0, 0 |
| 55 | +; CHECK-NEXT: vfchedb %v1, %v0, %v24 |
| 56 | +; CHECK-NEXT: vsel %v24, %v0, %v24, %v1 |
| 57 | +; CHECK-NEXT: br %r14 |
51 | 58 | %cmp = fcmp ugt <2 x double> %val, zeroinitializer |
52 | 59 | %ret = select <2 x i1> %cmp, <2 x double> %val, <2 x double> zeroinitializer |
53 | 60 | ret <2 x double> %ret |
54 | 61 | } |
55 | 62 |
|
56 | 63 | define <2 x double> @f6(<2 x double> %val) { |
57 | 64 | ; CHECK-LABEL: f6: |
58 | | -; CHECK: vgbm %v0, 0 |
59 | | -; CHECK-NEXT: vfchedb %v1, %v24, %v0 |
60 | | -; CHECK-NEXT: vsel %v24, %v0, %v24, %v1 |
61 | | -; CHECK-NEXT: br %r14 |
| 65 | +; CHECK: # %bb.0: |
| 66 | +; CHECK-NEXT: vgbm %v0, 0 |
| 67 | +; CHECK-NEXT: vfchedb %v1, %v24, %v0 |
| 68 | +; CHECK-NEXT: vsel %v24, %v0, %v24, %v1 |
| 69 | +; CHECK-NEXT: br %r14 |
62 | 70 | %cmp = fcmp ult <2 x double> %val, zeroinitializer |
63 | 71 | %ret = select <2 x i1> %cmp, <2 x double> %val, <2 x double> zeroinitializer |
64 | 72 | ret <2 x double> %ret |
65 | 73 | } |
66 | 74 |
|
67 | 75 | define <4 x float> @f7(<4 x float> %val) { |
68 | 76 | ; CHECK-LABEL: f7: |
69 | | -; CHECK: vgbm %v0, 0 |
70 | | -; CHECK-NEXT: vfchesb %v1, %v0, %v24 |
71 | | -; CHECK-NEXT: vsel %v24, %v0, %v24, %v1 |
72 | | -; CHECK-NEXT: br %r14 |
| 77 | +; CHECK: # %bb.0: |
| 78 | +; CHECK-NEXT: vgbm %v0, 0 |
| 79 | +; CHECK-NEXT: vfchesb %v1, %v0, %v24 |
| 80 | +; CHECK-NEXT: vsel %v24, %v0, %v24, %v1 |
| 81 | +; CHECK-NEXT: br %r14 |
73 | 82 | %cmp = fcmp ugt <4 x float> %val, zeroinitializer |
74 | 83 | %ret = select <4 x i1> %cmp, <4 x float> %val, <4 x float> zeroinitializer |
75 | 84 | ret <4 x float> %ret |
76 | 85 | } |
77 | 86 |
|
78 | 87 | define <4 x float> @f8(<4 x float> %val) { |
79 | 88 | ; CHECK-LABEL: f8: |
80 | | -; CHECK: vgbm %v0, 0 |
81 | | -; CHECK-NEXT: vfchesb %v1, %v24, %v0 |
82 | | -; CHECK-NEXT: vsel %v24, %v0, %v24, %v1 |
83 | | -; CHECK-NEXT: br %r14 |
| 89 | +; CHECK: # %bb.0: |
| 90 | +; CHECK-NEXT: vgbm %v0, 0 |
| 91 | +; CHECK-NEXT: vfchesb %v1, %v24, %v0 |
| 92 | +; CHECK-NEXT: vsel %v24, %v0, %v24, %v1 |
| 93 | +; CHECK-NEXT: br %r14 |
84 | 94 | %cmp = fcmp ult <4 x float> %val, zeroinitializer |
85 | 95 | %ret = select <4 x i1> %cmp, <4 x float> %val, <4 x float> zeroinitializer |
86 | 96 | ret <4 x float> %ret |
|
0 commit comments