1
- # RUN: llc -run-pass=machine-combiner -o - -mtriple=aarch64-unknown-linux -mcpu=cortex-a57 -enable-unsafe-fp-math - machine-combiner-verify-pattern-order=true %s | FileCheck --check-prefixes=UNPROFITABLE,ALL %s
2
- # RUN: llc -run-pass=machine-combiner -o - -mtriple=aarch64-unknown-linux -mcpu=falkor -enable-unsafe-fp-math %s -machine-combiner-verify-pattern-order=true | FileCheck --check-prefixes=PROFITABLE,ALL %s
3
- # RUN: llc -run-pass=machine-combiner -o - -mtriple=aarch64-unknown-linux -mcpu=exynos-m3 -enable-unsafe-fp-math - machine-combiner-verify-pattern-order=true %s | FileCheck --check-prefixes=PROFITABLE,ALL %s
4
- # RUN: llc -run-pass=machine-combiner -o - -mtriple=aarch64-unknown-linux -mcpu=thunderx2t99 -enable-unsafe-fp-math - machine-combiner-verify-pattern-order=true %s | FileCheck --check-prefixes=PROFITABLE,ALL %s
5
- # RUN: llc -run-pass=machine-combiner -o - -mtriple=aarch64-unknown-linux -mcpu=thunderx3t110 -enable-unsafe-fp-math - machine-combiner-verify-pattern-order=true %s | FileCheck --check-prefixes=PROFITABLE,ALL %s
1
+ # RUN: llc -run-pass=machine-combiner -o - -mtriple=aarch64-unknown-linux -mcpu=cortex-a57 -machine-combiner-verify-pattern-order=true %s | FileCheck --check-prefixes=UNPROFITABLE,ALL %s
2
+ # RUN: llc -run-pass=machine-combiner -o - -mtriple=aarch64-unknown-linux -mcpu=falkor %s -machine-combiner-verify-pattern-order=true | FileCheck --check-prefixes=PROFITABLE,ALL %s
3
+ # RUN: llc -run-pass=machine-combiner -o - -mtriple=aarch64-unknown-linux -mcpu=exynos-m3 -machine-combiner-verify-pattern-order=true %s | FileCheck --check-prefixes=PROFITABLE,ALL %s
4
+ # RUN: llc -run-pass=machine-combiner -o - -mtriple=aarch64-unknown-linux -mcpu=thunderx2t99 -machine-combiner-verify-pattern-order=true %s | FileCheck --check-prefixes=PROFITABLE,ALL %s
5
+ # RUN: llc -run-pass=machine-combiner -o - -mtriple=aarch64-unknown-linux -mcpu=thunderx3t110 -machine-combiner-verify-pattern-order=true %s | FileCheck --check-prefixes=PROFITABLE,ALL %s
6
6
#
7
7
name : f1_2s
8
8
registers :
@@ -16,18 +16,18 @@ body: |
16
16
%2:fpr64 = COPY $d2
17
17
%1:fpr64 = COPY $d1
18
18
%0:fpr64 = COPY $d0
19
- %3:fpr64 = FMULv2f32 %0, %1, implicit $fpcr
20
- %4:fpr64 = FSUBv2f32 killed %3, %2, implicit $fpcr
19
+ %3:fpr64 = contract FMULv2f32 %0, %1, implicit $fpcr
20
+ %4:fpr64 = contract FSUBv2f32 killed %3, %2, implicit $fpcr
21
21
$d0 = COPY %4
22
22
RET_ReallyLR implicit $d0
23
23
24
24
...
25
25
# UNPROFITABLE-LABEL: name: f1_2s
26
- # UNPROFITABLE: [[R1:%[0-9]+]]:fpr64 = FNEGv2f32 %2
26
+ # UNPROFITABLE: [[R1:%[0-9]+]]:fpr64 = contract FNEGv2f32 %2
27
27
# UNPROFITABLE-NEXT: FMLAv2f32 killed [[R1]], %0, %1, implicit $fpcr
28
28
#
29
29
# PROFITABLE-LABEL: name: f1_2s
30
- # PROFITABLE: [[R1:%[0-9]+]]:fpr64 = FNEGv2f32 %2
30
+ # PROFITABLE: [[R1:%[0-9]+]]:fpr64 = contract FNEGv2f32 %2
31
31
# PROFITABLE-NEXT: FMLAv2f32 killed [[R1]], %0, %1, implicit $fpcr
32
32
---
33
33
name : f1_4s
@@ -42,18 +42,18 @@ body: |
42
42
%2:fpr128 = COPY $q2
43
43
%1:fpr128 = COPY $q1
44
44
%0:fpr128 = COPY $q0
45
- %3:fpr128 = FMULv4f32 %0, %1, implicit $fpcr
46
- %4:fpr128 = FSUBv4f32 killed %3, %2, implicit $fpcr
45
+ %3:fpr128 = contract FMULv4f32 %0, %1, implicit $fpcr
46
+ %4:fpr128 = contract FSUBv4f32 killed %3, %2, implicit $fpcr
47
47
$q0 = COPY %4
48
48
RET_ReallyLR implicit $q0
49
49
50
50
...
51
51
# UNPROFITABLE-LABEL: name: f1_4s
52
- # UNPROFITABLE: [[R1:%[0-9]+]]:fpr128 = FMULv4f32 %0, %1, implicit $fpcr
52
+ # UNPROFITABLE: [[R1:%[0-9]+]]:fpr128 = contract FMULv4f32 %0, %1, implicit $fpcr
53
53
# UNPROFITABLE-NEXT: FSUBv4f32 killed [[R1]], %2, implicit $fpcr
54
54
#
55
55
# PROFITABLE-LABEL: name: f1_4s
56
- # PROFITABLE: [[R1:%[0-9]+]]:fpr128 = FNEGv4f32 %2
56
+ # PROFITABLE: [[R1:%[0-9]+]]:fpr128 = contract FNEGv4f32 %2
57
57
# PROFITABLE-NEXT: FMLAv4f32 killed [[R1]], %0, %1, implicit $fpcr
58
58
---
59
59
name : f1_2d
@@ -68,18 +68,18 @@ body: |
68
68
%2:fpr128 = COPY $q2
69
69
%1:fpr128 = COPY $q1
70
70
%0:fpr128 = COPY $q0
71
- %3:fpr128 = FMULv2f64 %0, %1, implicit $fpcr
72
- %4:fpr128 = FSUBv2f64 killed %3, %2, implicit $fpcr
71
+ %3:fpr128 = contract FMULv2f64 %0, %1, implicit $fpcr
72
+ %4:fpr128 = contract FSUBv2f64 killed %3, %2, implicit $fpcr
73
73
$q0 = COPY %4
74
74
RET_ReallyLR implicit $q0
75
75
76
76
...
77
77
# UNPROFITABLE-LABEL: name: f1_2d
78
- # UNPROFITABLE: %3:fpr128 = FMULv2f64 %0, %1, implicit $fpcr
78
+ # UNPROFITABLE: %3:fpr128 = contract FMULv2f64 %0, %1, implicit $fpcr
79
79
# UNPROFITABLE-NEXT: FSUBv2f64 killed %3, %2, implicit $fpcr
80
80
#
81
81
# PROFITABLE-LABEL: name: f1_2d
82
- # PROFITABLE: [[R1:%[0-9]+]]:fpr128 = FNEGv2f64 %2
82
+ # PROFITABLE: [[R1:%[0-9]+]]:fpr128 = contract FNEGv2f64 %2
83
83
# PROFITABLE-NEXT: FMLAv2f64 killed [[R1]], %0, %1, implicit $fpcr
84
84
---
85
85
name : f1_both_fmul_2s
@@ -97,15 +97,15 @@ body: |
97
97
%2:fpr64 = COPY $q2
98
98
%1:fpr64 = COPY $q1
99
99
%0:fpr64 = COPY $q0
100
- %4:fpr64 = FMULv2f32 %0, %1, implicit $fpcr
101
- %5:fpr64 = FMULv2f32 %2, %3, implicit $fpcr
102
- %6:fpr64 = FSUBv2f32 killed %4, %5, implicit $fpcr
100
+ %4:fpr64 = contract FMULv2f32 %0, %1, implicit $fpcr
101
+ %5:fpr64 = contract FMULv2f32 %2, %3, implicit $fpcr
102
+ %6:fpr64 = contract FSUBv2f32 killed %4, %5, implicit $fpcr
103
103
$q0 = COPY %6
104
104
RET_ReallyLR implicit $q0
105
105
106
106
...
107
107
# ALL-LABEL: name: f1_both_fmul_2s
108
- # ALL: %4:fpr64 = FMULv2f32 %0, %1, implicit $fpcr
108
+ # ALL: %4:fpr64 = contract FMULv2f32 %0, %1, implicit $fpcr
109
109
# ALL-NEXT: FMLSv2f32 killed %4, %2, %3, implicit $fpcr
110
110
---
111
111
name : f1_both_fmul_4s
@@ -123,15 +123,15 @@ body: |
123
123
%2:fpr128 = COPY $q2
124
124
%1:fpr128 = COPY $q1
125
125
%0:fpr128 = COPY $q0
126
- %4:fpr128 = FMULv4f32 %0, %1, implicit $fpcr
127
- %5:fpr128 = FMULv4f32 %2, %3, implicit $fpcr
128
- %6:fpr128 = FSUBv4f32 killed %4, %5, implicit $fpcr
126
+ %4:fpr128 = contract FMULv4f32 %0, %1, implicit $fpcr
127
+ %5:fpr128 = contract FMULv4f32 %2, %3, implicit $fpcr
128
+ %6:fpr128 = contract FSUBv4f32 killed %4, %5, implicit $fpcr
129
129
$q0 = COPY %6
130
130
RET_ReallyLR implicit $q0
131
131
132
132
...
133
133
# ALL-LABEL: name: f1_both_fmul_4s
134
- # ALL: %4:fpr128 = FMULv4f32 %0, %1, implicit $fpcr
134
+ # ALL: %4:fpr128 = contract FMULv4f32 %0, %1, implicit $fpcr
135
135
# ALL-NEXT: FMLSv4f32 killed %4, %2, %3, implicit $fpcr
136
136
---
137
137
name : f1_both_fmul_2d
@@ -149,14 +149,14 @@ body: |
149
149
%2:fpr128 = COPY $q2
150
150
%1:fpr128 = COPY $q1
151
151
%0:fpr128 = COPY $q0
152
- %4:fpr128 = FMULv2f64 %0, %1, implicit $fpcr
153
- %5:fpr128 = FMULv2f64 %2, %3, implicit $fpcr
154
- %6:fpr128 = FSUBv2f64 killed %4, %5, implicit $fpcr
152
+ %4:fpr128 = contract FMULv2f64 %0, %1, implicit $fpcr
153
+ %5:fpr128 = contract FMULv2f64 %2, %3, implicit $fpcr
154
+ %6:fpr128 = contract FSUBv2f64 killed %4, %5, implicit $fpcr
155
155
$q0 = COPY %6
156
156
RET_ReallyLR implicit $q0
157
157
158
158
...
159
159
# ALL-LABEL: name: f1_both_fmul_2d
160
- # ALL: %4:fpr128 = FMULv2f64 %0, %1, implicit $fpcr
160
+ # ALL: %4:fpr128 = contract FMULv2f64 %0, %1, implicit $fpcr
161
161
# ALL-NEXT: FMLSv2f64 killed %4, %2, %3, implicit $fpcr
162
162
0 commit comments