@@ -11,6 +11,16 @@ entry:
11
11
ret <4 x i16 > %1
12
12
}
13
13
14
+ define <4 x half > @v4bf16_to_v4f16 (float , <4 x bfloat> %a ) nounwind {
15
+ ; CHECK-LABEL: v4bf16_to_v4f16:
16
+ ; CHECK: // %bb.0: // %entry
17
+ ; CHECK-NEXT: fmov d0, d1
18
+ ; CHECK-NEXT: ret
19
+ entry:
20
+ %1 = bitcast <4 x bfloat> %a to <4 x half >
21
+ ret <4 x half > %1
22
+ }
23
+
14
24
define <2 x i32 > @v4bf16_to_v2i32 (float , <4 x bfloat> %a ) nounwind {
15
25
; CHECK-LABEL: v4bf16_to_v2i32:
16
26
; CHECK: // %bb.0: // %entry
@@ -82,6 +92,16 @@ entry:
82
92
ret <4 x bfloat> %1
83
93
}
84
94
95
+ define <4 x bfloat> @v4f16_to_v4bf16 (float , <4 x half > %a ) nounwind {
96
+ ; CHECK-LABEL: v4f16_to_v4bf16:
97
+ ; CHECK: // %bb.0: // %entry
98
+ ; CHECK-NEXT: fmov d0, d1
99
+ ; CHECK-NEXT: ret
100
+ entry:
101
+ %1 = bitcast <4 x half > %a to <4 x bfloat>
102
+ ret <4 x bfloat> %1
103
+ }
104
+
85
105
define <4 x bfloat> @v2i32_to_v4bf16 (float , <2 x i32 > %a ) nounwind {
86
106
; CHECK-LABEL: v2i32_to_v4bf16:
87
107
; CHECK: // %bb.0: // %entry
@@ -152,6 +172,16 @@ entry:
152
172
ret <8 x i16 > %1
153
173
}
154
174
175
+ define <8 x half > @v8bf16_to_v8f16 (float , <8 x bfloat> %a ) nounwind {
176
+ ; CHECK-LABEL: v8bf16_to_v8f16:
177
+ ; CHECK: // %bb.0: // %entry
178
+ ; CHECK-NEXT: mov v0.16b, v1.16b
179
+ ; CHECK-NEXT: ret
180
+ entry:
181
+ %1 = bitcast <8 x bfloat> %a to <8 x half >
182
+ ret <8 x half > %1
183
+ }
184
+
155
185
define <4 x i32 > @v8bf16_to_v4i32 (float , <8 x bfloat> %a ) nounwind {
156
186
; CHECK-LABEL: v8bf16_to_v4i32:
157
187
; CHECK: // %bb.0: // %entry
@@ -202,6 +232,16 @@ entry:
202
232
ret <8 x bfloat> %1
203
233
}
204
234
235
+ define <8 x bfloat> @v8f16_to_v8bf16 (float , <8 x half > %a ) nounwind {
236
+ ; CHECK-LABEL: v8f16_to_v8bf16:
237
+ ; CHECK: // %bb.0: // %entry
238
+ ; CHECK-NEXT: mov v0.16b, v1.16b
239
+ ; CHECK-NEXT: ret
240
+ entry:
241
+ %1 = bitcast <8 x half > %a to <8 x bfloat>
242
+ ret <8 x bfloat> %1
243
+ }
244
+
205
245
define <8 x bfloat> @v4i32_to_v8bf16 (float , <4 x i32 > %a ) nounwind {
206
246
; CHECK-LABEL: v4i32_to_v8bf16:
207
247
; CHECK: // %bb.0: // %entry
0 commit comments