@@ -61,55 +61,11 @@ define <8 x float> @sitofp_uitofp(<8 x i32> %a) {
61
61
}
62
62
63
63
define <8 x i32 > @fptosi_fptoui (<8 x float > %a ) {
64
- ; SSE-LABEL: @fptosi_fptoui(
65
- ; SSE-NEXT: [[A4:%.*]] = extractelement <8 x float> [[A:%.*]], i32 4
66
- ; SSE-NEXT: [[A5:%.*]] = extractelement <8 x float> [[A]], i32 5
67
- ; SSE-NEXT: [[A6:%.*]] = extractelement <8 x float> [[A]], i32 6
68
- ; SSE-NEXT: [[A7:%.*]] = extractelement <8 x float> [[A]], i32 7
69
- ; SSE-NEXT: [[TMP1:%.*]] = shufflevector <8 x float> [[A]], <8 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
70
- ; SSE-NEXT: [[TMP2:%.*]] = fptosi <4 x float> [[TMP1]] to <4 x i32>
71
- ; SSE-NEXT: [[AB4:%.*]] = fptoui float [[A4]] to i32
72
- ; SSE-NEXT: [[AB5:%.*]] = fptoui float [[A5]] to i32
73
- ; SSE-NEXT: [[AB6:%.*]] = fptoui float [[A6]] to i32
74
- ; SSE-NEXT: [[AB7:%.*]] = fptoui float [[A7]] to i32
75
- ; SSE-NEXT: [[R31:%.*]] = shufflevector <4 x i32> [[TMP2]], <4 x i32> undef, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 undef, i32 undef, i32 undef, i32 undef>
76
- ; SSE-NEXT: [[R4:%.*]] = insertelement <8 x i32> [[R31]], i32 [[AB4]], i32 4
77
- ; SSE-NEXT: [[R5:%.*]] = insertelement <8 x i32> [[R4]], i32 [[AB5]], i32 5
78
- ; SSE-NEXT: [[R6:%.*]] = insertelement <8 x i32> [[R5]], i32 [[AB6]], i32 6
79
- ; SSE-NEXT: [[R7:%.*]] = insertelement <8 x i32> [[R6]], i32 [[AB7]], i32 7
80
- ; SSE-NEXT: ret <8 x i32> [[R7]]
81
- ;
82
- ; SLM-LABEL: @fptosi_fptoui(
83
- ; SLM-NEXT: [[A4:%.*]] = extractelement <8 x float> [[A:%.*]], i32 4
84
- ; SLM-NEXT: [[A5:%.*]] = extractelement <8 x float> [[A]], i32 5
85
- ; SLM-NEXT: [[A6:%.*]] = extractelement <8 x float> [[A]], i32 6
86
- ; SLM-NEXT: [[A7:%.*]] = extractelement <8 x float> [[A]], i32 7
87
- ; SLM-NEXT: [[TMP1:%.*]] = shufflevector <8 x float> [[A]], <8 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
88
- ; SLM-NEXT: [[TMP2:%.*]] = fptosi <4 x float> [[TMP1]] to <4 x i32>
89
- ; SLM-NEXT: [[AB4:%.*]] = fptoui float [[A4]] to i32
90
- ; SLM-NEXT: [[AB5:%.*]] = fptoui float [[A5]] to i32
91
- ; SLM-NEXT: [[AB6:%.*]] = fptoui float [[A6]] to i32
92
- ; SLM-NEXT: [[AB7:%.*]] = fptoui float [[A7]] to i32
93
- ; SLM-NEXT: [[R31:%.*]] = shufflevector <4 x i32> [[TMP2]], <4 x i32> undef, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 undef, i32 undef, i32 undef, i32 undef>
94
- ; SLM-NEXT: [[R4:%.*]] = insertelement <8 x i32> [[R31]], i32 [[AB4]], i32 4
95
- ; SLM-NEXT: [[R5:%.*]] = insertelement <8 x i32> [[R4]], i32 [[AB5]], i32 5
96
- ; SLM-NEXT: [[R6:%.*]] = insertelement <8 x i32> [[R5]], i32 [[AB6]], i32 6
97
- ; SLM-NEXT: [[R7:%.*]] = insertelement <8 x i32> [[R6]], i32 [[AB7]], i32 7
98
- ; SLM-NEXT: ret <8 x i32> [[R7]]
99
- ;
100
- ; AVX-LABEL: @fptosi_fptoui(
101
- ; AVX-NEXT: [[TMP1:%.*]] = shufflevector <8 x float> [[A:%.*]], <8 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
102
- ; AVX-NEXT: [[TMP2:%.*]] = fptosi <4 x float> [[TMP1]] to <4 x i32>
103
- ; AVX-NEXT: [[TMP3:%.*]] = shufflevector <8 x float> [[A]], <8 x float> undef, <4 x i32> <i32 4, i32 5, i32 6, i32 7>
104
- ; AVX-NEXT: [[TMP4:%.*]] = fptoui <4 x float> [[TMP3]] to <4 x i32>
105
- ; AVX-NEXT: [[R72:%.*]] = shufflevector <4 x i32> [[TMP2]], <4 x i32> [[TMP4]], <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7>
106
- ; AVX-NEXT: ret <8 x i32> [[R72]]
107
- ;
108
- ; AVX512-LABEL: @fptosi_fptoui(
109
- ; AVX512-NEXT: [[TMP1:%.*]] = fptosi <8 x float> [[A:%.*]] to <8 x i32>
110
- ; AVX512-NEXT: [[TMP2:%.*]] = fptoui <8 x float> [[A]] to <8 x i32>
111
- ; AVX512-NEXT: [[TMP3:%.*]] = shufflevector <8 x i32> [[TMP1]], <8 x i32> [[TMP2]], <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 12, i32 13, i32 14, i32 15>
112
- ; AVX512-NEXT: ret <8 x i32> [[TMP3]]
64
+ ; CHECK-LABEL: @fptosi_fptoui(
65
+ ; CHECK-NEXT: [[TMP1:%.*]] = fptosi <8 x float> [[A:%.*]] to <8 x i32>
66
+ ; CHECK-NEXT: [[TMP2:%.*]] = fptoui <8 x float> [[A]] to <8 x i32>
67
+ ; CHECK-NEXT: [[TMP3:%.*]] = shufflevector <8 x i32> [[TMP1]], <8 x i32> [[TMP2]], <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 12, i32 13, i32 14, i32 15>
68
+ ; CHECK-NEXT: ret <8 x i32> [[TMP3]]
113
69
;
114
70
%a0 = extractelement <8 x float > %a , i32 0
115
71
%a1 = extractelement <8 x float > %a , i32 1
0 commit comments