@@ -11,6 +11,16 @@ entry:
1111 ret <4 x i16 > %1
1212}
1313
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+
1424define <2 x i32 > @v4bf16_to_v2i32 (float , <4 x bfloat> %a ) nounwind {
1525; CHECK-LABEL: v4bf16_to_v2i32:
1626; CHECK: // %bb.0: // %entry
@@ -82,6 +92,16 @@ entry:
8292 ret <4 x bfloat> %1
8393}
8494
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+
85105define <4 x bfloat> @v2i32_to_v4bf16 (float , <2 x i32 > %a ) nounwind {
86106; CHECK-LABEL: v2i32_to_v4bf16:
87107; CHECK: // %bb.0: // %entry
@@ -152,6 +172,16 @@ entry:
152172 ret <8 x i16 > %1
153173}
154174
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+
155185define <4 x i32 > @v8bf16_to_v4i32 (float , <8 x bfloat> %a ) nounwind {
156186; CHECK-LABEL: v8bf16_to_v4i32:
157187; CHECK: // %bb.0: // %entry
@@ -202,6 +232,16 @@ entry:
202232 ret <8 x bfloat> %1
203233}
204234
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+
205245define <8 x bfloat> @v4i32_to_v8bf16 (float , <4 x i32 > %a ) nounwind {
206246; CHECK-LABEL: v4i32_to_v8bf16:
207247; CHECK: // %bb.0: // %entry
0 commit comments