@@ -160,33 +160,17 @@ macro_rules! test_reduction_float_min_max {
160160 // targets:
161161 if i == $id:: lanes( ) - 1 &&
162162 target_with_broken_last_lane_nan {
163- // FIXME:
164- // https://github.com/rust-lang-nursery/packed_simd/issues/5
165- //
166- // If there is a NaN, the result should always
167- // the smallest element, but currently when the
168- // last element is NaN the current
169- // implementation incorrectly returns NaN.
170- //
171- // The targets mentioned above use different
172- // codegen that produces the correct result.
173- //
174- // These asserts detect if this behavior changes
175- assert!( v. min_element( ) . is_nan( ) ,
176- // FIXME: ^^^ should be -3.
163+ assert_eq!( v. min_element( ) , -3. ,
177164 "[A]: nan at {} => {} | {:?}" ,
178165 i, v. min_element( ) , v) ;
179166
180167 // If we replace all the elements in the vector
181168 // up-to the `i-th` lane with `NaN`s, the result
182169 // is still always `-3.` unless all elements of
183170 // the vector are `NaN`s:
184- //
185- // This is also broken:
186171 for j in 0 ..i {
187172 v = v. replace( j, n) ;
188- assert!( v. min_element( ) . is_nan( ) ,
189- // FIXME: ^^^ should be -3.
173+ assert_eq!( v. min_element( ) , -3. ,
190174 "[B]: nan at {} => {} | {:?}" ,
191175 i, v. min_element( ) , v) ;
192176 }
@@ -280,34 +264,17 @@ macro_rules! test_reduction_float_min_max {
280264 // targets:
281265 if i == $id:: lanes( ) - 1 &&
282266 target_with_broken_last_lane_nan {
283- // FIXME:
284- // https://github.com/rust-lang-nursery/packed_simd/issues/5
285- //
286- // If there is a NaN, the result should
287- // always the largest element, but currently
288- // when the last element is NaN the current
289- // implementation incorrectly returns NaN.
290- //
291- // The targets mentioned above use different
292- // codegen that produces the correct result.
293- //
294- // These asserts detect if this behavior
295- // changes
296- assert!( v. max_element( ) . is_nan( ) ,
297- // FIXME: ^^^ should be -3.
267+ assert_eq!( v. max_element( ) , -3. ,
298268 "[A]: nan at {} => {} | {:?}" ,
299269 i, v. max_element( ) , v) ;
300270
301271 // If we replace all the elements in the vector
302272 // up-to the `i-th` lane with `NaN`s, the result
303273 // is still always `-3.` unless all elements of
304274 // the vector are `NaN`s:
305- //
306- // This is also broken:
307275 for j in 0 ..i {
308276 v = v. replace( j, n) ;
309- assert!( v. max_element( ) . is_nan( ) ,
310- // FIXME: ^^^ should be -3.
277+ assert_eq!( v. max_element( ) , -3. ,
311278 "[B]: nan at {} => {} | {:?}" ,
312279 i, v. max_element( ) , v) ;
313280 }
0 commit comments