@@ -8,8 +8,8 @@ define <2 x half> @vector_sint64ToHalf(<2 x i64> %int64) {
8
8
; CHECK-NEXT: vcvtqq2ph %zmm0, %xmm0
9
9
; CHECK-NEXT: vzeroupper
10
10
; CHECK-NEXT: retq
11
- %fp16 = sitofp <2 x i64 > %int64 to <2 x half >
12
- ret <2 x half > %fp16
11
+ %fp16 = sitofp <2 x i64 > %int64 to <2 x half >
12
+ ret <2 x half > %fp16
13
13
}
14
14
15
15
define <4 x half > @vector_sint32ToHalf (<4 x i32 > %int32 ) {
@@ -27,8 +27,8 @@ define <4 x half> @vector_sint32ToHalf(<4 x i32> %int32) {
27
27
; CHECK-NEXT: vpunpcklwd {{.*#+}} xmm0 = xmm0[0],xmm2[0],xmm0[1],xmm2[1],xmm0[2],xmm2[2],xmm0[3],xmm2[3]
28
28
; CHECK-NEXT: vinsertps {{.*#+}} xmm0 = xmm0[0],xmm1[0],zero,zero
29
29
; CHECK-NEXT: retq
30
- %fp16 = sitofp <4 x i32 > %int32 to <4 x half >
31
- ret <4 x half > %fp16
30
+ %fp16 = sitofp <4 x i32 > %int32 to <4 x half >
31
+ ret <4 x half > %fp16
32
32
}
33
33
34
34
define <8 x half > @vector_sint16ToHalf (<8 x i16 > %int16 ) {
@@ -66,8 +66,8 @@ define <8 x half> @vector_sint16ToHalf(<8 x i16> %int16) {
66
66
; CHECK-NEXT: vpunpckldq {{.*#+}} xmm0 = xmm0[0],xmm2[0],xmm0[1],xmm2[1]
67
67
; CHECK-NEXT: vpunpcklqdq {{.*#+}} xmm0 = xmm0[0],xmm1[0]
68
68
; CHECK-NEXT: retq
69
- %fp16 = sitofp <8 x i16 > %int16 to <8 x half >
70
- ret <8 x half > %fp16
69
+ %fp16 = sitofp <8 x i16 > %int16 to <8 x half >
70
+ ret <8 x half > %fp16
71
71
}
72
72
73
73
define <2 x half > @vector_uint64ToHalf (<2 x i64 > %int64 ) {
@@ -77,14 +77,21 @@ define <2 x half> @vector_uint64ToHalf(<2 x i64> %int64) {
77
77
; CHECK-NEXT: vcvtuqq2ph %zmm0, %xmm0
78
78
; CHECK-NEXT: vzeroupper
79
79
; CHECK-NEXT: retq
80
- %fp16 = uitofp <2 x i64 > %int64 to <2 x half >
81
- ret <2 x half > %fp16
80
+ %fp16 = uitofp <2 x i64 > %int64 to <2 x half >
81
+ ret <2 x half > %fp16
82
82
}
83
83
84
- ; define <4 x half> @vector_uint32ToHalf(<4 x i32> %int32) {
85
- ; %fp16 = uitofp <4 x i32> %int32 to <4 x half>
86
- ; ret <4 x half> %fp16
87
- ; }
84
+ define <4 x half > @vector_uint32ToHalf (<4 x i32 > %int32 ) {
85
+ ; CHECK-LABEL: vector_uint32ToHalf:
86
+ ; CHECK: # %bb.0:
87
+ ; CHECK-NEXT: # kill: def $xmm0 killed $xmm0 def $zmm0
88
+ ; CHECK-NEXT: vcvtudq2ph %zmm0, %ymm0
89
+ ; CHECK-NEXT: # kill: def $xmm0 killed $xmm0 killed $ymm0
90
+ ; CHECK-NEXT: vzeroupper
91
+ ; CHECK-NEXT: retq
92
+ %fp16 = uitofp <4 x i32 > %int32 to <4 x half >
93
+ ret <4 x half > %fp16
94
+ }
88
95
89
96
define <8 x half > @vector_uint16ToHalf (<8 x i16 > %int16 ) {
90
97
; CHECK-LABEL: vector_uint16ToHalf:
@@ -113,6 +120,6 @@ define <8 x half> @vector_uint16ToHalf(<8 x i16> %int16) {
113
120
; CHECK-NEXT: vpunpckldq {{.*#+}} xmm0 = xmm0[0],xmm2[0],xmm0[1],xmm2[1]
114
121
; CHECK-NEXT: vpunpcklqdq {{.*#+}} xmm0 = xmm0[0],xmm1[0]
115
122
; CHECK-NEXT: retq
116
- %fp16 = uitofp <8 x i16 > %int16 to <8 x half >
117
- ret <8 x half > %fp16
123
+ %fp16 = uitofp <8 x i16 > %int16 to <8 x half >
124
+ ret <8 x half > %fp16
118
125
}
0 commit comments