Skip to content

Commit 15ef3fe

Browse files
HecaiYuanmr-c
authored andcommitted
skip infinity tests under SIMDE_FAST_MATH
With -ffinite-math-only (implied by -ffast-math/-Ofast), Clang optimize away comparisons involving infinity, causing test assertions to fail. Skip the affected test cases when SIMDE_FAST_MATH is defined.
1 parent fb59f70 commit 15ef3fe

2 files changed

Lines changed: 22 additions & 10 deletions

File tree

test/x86/avx512/roundscale.c

Lines changed: 20 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -6070,10 +6070,12 @@ test_simde_mm_roundscale_sd (SIMDE_MUNIT_TEST_ARGS) {
60706070
simde_test_x86_assert_equal_f64x2(r, simde_mm_loadu_pd(test_vec[7].r), 1);
60716071
#endif
60726072

6073+
#if !defined(SIMDE_FAST_MATH)
60736074
a = simde_mm_loadu_pd(test_vec[8].a);
60746075
b = simde_mm_loadu_pd(test_vec[8].b);
60756076
r = simde_mm_roundscale_sd(a, b, INT32_C( 128));
60766077
simde_test_x86_assert_equal_f64x2(r, simde_mm_loadu_pd(test_vec[8].r), 1);
6078+
#endif
60776079

60786080
a = simde_mm_loadu_pd(test_vec[9].a);
60796081
b = simde_mm_loadu_pd(test_vec[9].b);
@@ -6115,22 +6117,24 @@ test_simde_mm_roundscale_sd (SIMDE_MUNIT_TEST_ARGS) {
61156117
r = simde_mm_roundscale_sd(a, b, INT32_C( 1));
61166118
simde_test_x86_assert_equal_f64x2(r, simde_mm_loadu_pd(test_vec[16].r), 1);
61176119

6120+
#if !defined(SIMDE_FAST_MATH)
61186121
a = simde_mm_loadu_pd(test_vec[17].a);
61196122
b = simde_mm_loadu_pd(test_vec[17].b);
61206123
r = simde_mm_roundscale_sd(a, b, INT32_C( 17));
61216124
simde_test_x86_assert_equal_f64x2(r, simde_mm_loadu_pd(test_vec[17].r), 1);
6125+
#endif
61226126

61236127
a = simde_mm_loadu_pd(test_vec[18].a);
61246128
b = simde_mm_loadu_pd(test_vec[18].b);
61256129
r = simde_mm_roundscale_sd(a, b, INT32_C( 33));
61266130
simde_test_x86_assert_equal_f64x2(r, simde_mm_loadu_pd(test_vec[18].r), 1);
61276131

6132+
#if !defined(SIMDE_FAST_MATH)
61286133
a = simde_mm_loadu_pd(test_vec[19].a);
61296134
b = simde_mm_loadu_pd(test_vec[19].b);
61306135
r = simde_mm_roundscale_sd(a, b, INT32_C( 49));
61316136
simde_test_x86_assert_equal_f64x2(r, simde_mm_loadu_pd(test_vec[19].r), 1);
61326137

6133-
#if !defined(SIMDE_FAST_MATH)
61346138
a = simde_mm_loadu_pd(test_vec[20].a);
61356139
b = simde_mm_loadu_pd(test_vec[20].b);
61366140
r = simde_mm_roundscale_sd(a, b, INT32_C( 65));
@@ -6159,6 +6163,7 @@ test_simde_mm_roundscale_sd (SIMDE_MUNIT_TEST_ARGS) {
61596163
r = simde_mm_roundscale_sd(a, b, INT32_C( 129));
61606164
simde_test_x86_assert_equal_f64x2(r, simde_mm_loadu_pd(test_vec[24].r), 1);
61616165

6166+
#if !defined(SIMDE_FAST_MATH)
61626167
a = simde_mm_loadu_pd(test_vec[25].a);
61636168
b = simde_mm_loadu_pd(test_vec[25].b);
61646169
r = simde_mm_roundscale_sd(a, b, INT32_C( 145));
@@ -6168,16 +6173,19 @@ test_simde_mm_roundscale_sd (SIMDE_MUNIT_TEST_ARGS) {
61686173
b = simde_mm_loadu_pd(test_vec[26].b);
61696174
r = simde_mm_roundscale_sd(a, b, INT32_C( 161));
61706175
simde_test_x86_assert_equal_f64x2(r, simde_mm_loadu_pd(test_vec[26].r), 1);
6176+
#endif
61716177

61726178
a = simde_mm_loadu_pd(test_vec[27].a);
61736179
b = simde_mm_loadu_pd(test_vec[27].b);
61746180
r = simde_mm_roundscale_sd(a, b, INT32_C( 177));
61756181
simde_test_x86_assert_equal_f64x2(r, simde_mm_loadu_pd(test_vec[27].r), 1);
61766182

6183+
#if !defined(SIMDE_FAST_MATH)
61776184
a = simde_mm_loadu_pd(test_vec[28].a);
61786185
b = simde_mm_loadu_pd(test_vec[28].b);
61796186
r = simde_mm_roundscale_sd(a, b, INT32_C( 193));
61806187
simde_test_x86_assert_equal_f64x2(r, simde_mm_loadu_pd(test_vec[28].r), 1);
6188+
#endif
61816189

61826190
a = simde_mm_loadu_pd(test_vec[29].a);
61836191
b = simde_mm_loadu_pd(test_vec[29].b);
@@ -6216,7 +6224,6 @@ test_simde_mm_roundscale_sd (SIMDE_MUNIT_TEST_ARGS) {
62166224
b = simde_mm_loadu_pd(test_vec[35].b);
62176225
r = simde_mm_roundscale_sd(a, b, INT32_C( 50));
62186226
simde_test_x86_assert_equal_f64x2(r, simde_mm_loadu_pd(test_vec[35].r), 1);
6219-
#endif
62206227

62216228
a = simde_mm_loadu_pd(test_vec[36].a);
62226229
b = simde_mm_loadu_pd(test_vec[36].b);
@@ -6227,6 +6234,7 @@ test_simde_mm_roundscale_sd (SIMDE_MUNIT_TEST_ARGS) {
62276234
b = simde_mm_loadu_pd(test_vec[37].b);
62286235
r = simde_mm_roundscale_sd(a, b, INT32_C( 82));
62296236
simde_test_x86_assert_equal_f64x2(r, simde_mm_loadu_pd(test_vec[37].r), 1);
6237+
#endif
62306238

62316239
a = simde_mm_loadu_pd(test_vec[38].a);
62326240
b = simde_mm_loadu_pd(test_vec[38].b);
@@ -6303,6 +6311,7 @@ test_simde_mm_roundscale_sd (SIMDE_MUNIT_TEST_ARGS) {
63036311
r = simde_mm_roundscale_sd(a, b, INT32_C( 35));
63046312
simde_test_x86_assert_equal_f64x2(r, simde_mm_loadu_pd(test_vec[50].r), 1);
63056313

6314+
#if !defined(SIMDE_FAST_MATH)
63066315
a = simde_mm_loadu_pd(test_vec[51].a);
63076316
b = simde_mm_loadu_pd(test_vec[51].b);
63086317
r = simde_mm_roundscale_sd(a, b, INT32_C( 51));
@@ -6313,17 +6322,16 @@ test_simde_mm_roundscale_sd (SIMDE_MUNIT_TEST_ARGS) {
63136322
r = simde_mm_roundscale_sd(a, b, INT32_C( 67));
63146323
simde_test_x86_assert_equal_f64x2(r, simde_mm_loadu_pd(test_vec[52].r), 1);
63156324

6316-
#if !defined(SIMDE_FAST_MATH)
63176325
a = simde_mm_loadu_pd(test_vec[53].a);
63186326
b = simde_mm_loadu_pd(test_vec[53].b);
63196327
r = simde_mm_roundscale_sd(a, b, INT32_C( 83));
63206328
simde_test_x86_assert_equal_f64x2(r, simde_mm_loadu_pd(test_vec[53].r), 1);
6321-
#endif
63226329

63236330
a = simde_mm_loadu_pd(test_vec[54].a);
63246331
b = simde_mm_loadu_pd(test_vec[54].b);
63256332
r = simde_mm_roundscale_sd(a, b, INT32_C( 99));
63266333
simde_test_x86_assert_equal_f64x2(r, simde_mm_loadu_pd(test_vec[54].r), 1);
6334+
#endif
63276335

63286336
a = simde_mm_loadu_pd(test_vec[55].a);
63296337
b = simde_mm_loadu_pd(test_vec[55].b);
@@ -6345,6 +6353,7 @@ test_simde_mm_roundscale_sd (SIMDE_MUNIT_TEST_ARGS) {
63456353
r = simde_mm_roundscale_sd(a, b, INT32_C( 163));
63466354
simde_test_x86_assert_equal_f64x2(r, simde_mm_loadu_pd(test_vec[58].r), 1);
63476355

6356+
#if !defined(SIMDE_FAST_MATH)
63486357
a = simde_mm_loadu_pd(test_vec[59].a);
63496358
b = simde_mm_loadu_pd(test_vec[59].b);
63506359
r = simde_mm_roundscale_sd(a, b, INT32_C( 179));
@@ -6359,6 +6368,7 @@ test_simde_mm_roundscale_sd (SIMDE_MUNIT_TEST_ARGS) {
63596368
b = simde_mm_loadu_pd(test_vec[61].b);
63606369
r = simde_mm_roundscale_sd(a, b, INT32_C( 211));
63616370
simde_test_x86_assert_equal_f64x2(r, simde_mm_loadu_pd(test_vec[61].r), 1);
6371+
#endif
63626372

63636373
a = simde_mm_loadu_pd(test_vec[62].a);
63646374
b = simde_mm_loadu_pd(test_vec[62].b);
@@ -6370,12 +6380,12 @@ test_simde_mm_roundscale_sd (SIMDE_MUNIT_TEST_ARGS) {
63706380
b = simde_mm_loadu_pd(test_vec[63].b);
63716381
r = simde_mm_roundscale_sd(a, b, INT32_C( 243));
63726382
simde_test_x86_assert_equal_f64x2(r, simde_mm_loadu_pd(test_vec[63].r), 1);
6373-
#endif
63746383

63756384
a = simde_mm_loadu_pd(test_vec[64].a);
63766385
b = simde_mm_loadu_pd(test_vec[64].b);
63776386
r = simde_mm_roundscale_sd(a, b, INT32_C( 4));
63786387
simde_test_x86_assert_equal_f64x2(r, simde_mm_loadu_pd(test_vec[64].r), 1);
6388+
#endif
63796389

63806390
a = simde_mm_loadu_pd(test_vec[65].a);
63816391
b = simde_mm_loadu_pd(test_vec[65].b);
@@ -6387,14 +6397,12 @@ test_simde_mm_roundscale_sd (SIMDE_MUNIT_TEST_ARGS) {
63876397
b = simde_mm_loadu_pd(test_vec[66].b);
63886398
r = simde_mm_roundscale_sd(a, b, INT32_C( 36));
63896399
simde_test_x86_assert_equal_f64x2(r, simde_mm_loadu_pd(test_vec[66].r), 1);
6390-
#endif
63916400

63926401
a = simde_mm_loadu_pd(test_vec[67].a);
63936402
b = simde_mm_loadu_pd(test_vec[67].b);
63946403
r = simde_mm_roundscale_sd(a, b, INT32_C( 52));
63956404
simde_test_x86_assert_equal_f64x2(r, simde_mm_loadu_pd(test_vec[67].r), 1);
63966405

6397-
#if !defined(SIMDE_FAST_MATH)
63986406
a = simde_mm_loadu_pd(test_vec[68].a);
63996407
b = simde_mm_loadu_pd(test_vec[68].b);
64006408
r = simde_mm_roundscale_sd(a, b, INT32_C( 68));
@@ -6435,10 +6443,12 @@ test_simde_mm_roundscale_sd (SIMDE_MUNIT_TEST_ARGS) {
64356443
r = simde_mm_roundscale_sd(a, b, INT32_C( 164));
64366444
simde_test_x86_assert_equal_f64x2(r, simde_mm_loadu_pd(test_vec[74].r), 1);
64376445

6446+
#if !defined(SIMDE_FAST_MATH)
64386447
a = simde_mm_loadu_pd(test_vec[75].a);
64396448
b = simde_mm_loadu_pd(test_vec[75].b);
64406449
r = simde_mm_roundscale_sd(a, b, INT32_C( 180));
64416450
simde_test_x86_assert_equal_f64x2(r, simde_mm_loadu_pd(test_vec[75].r), 1);
6451+
#endif
64426452

64436453
a = simde_mm_loadu_pd(test_vec[76].a);
64446454
b = simde_mm_loadu_pd(test_vec[76].b);
@@ -6575,27 +6585,25 @@ test_simde_mm_mask_roundscale_sd (SIMDE_MUNIT_TEST_ARGS) {
65756585
r = simde_mm_mask_roundscale_sd(src, test_vec[2].k, a, b, INT32_C( 98));
65766586
simde_test_x86_assert_equal_f64x2(r, simde_mm_loadu_pd(test_vec[2].r), 1);
65776587

6588+
#if !defined(SIMDE_FAST_MATH)
65786589
src = simde_mm_loadu_pd(test_vec[3].src);
65796590
a = simde_mm_loadu_pd(test_vec[3].a);
65806591
b = simde_mm_loadu_pd(test_vec[3].b);
65816592
r = simde_mm_mask_roundscale_sd(src, test_vec[3].k, a, b, INT32_C( 179));
65826593
simde_test_x86_assert_equal_f64x2(r, simde_mm_loadu_pd(test_vec[3].r), 1);
65836594

6584-
#if !defined(SIMDE_FAST_MATH)
65856595
src = simde_mm_loadu_pd(test_vec[4].src);
65866596
a = simde_mm_loadu_pd(test_vec[4].a);
65876597
b = simde_mm_loadu_pd(test_vec[4].b);
65886598
r = simde_mm_mask_roundscale_sd(src, test_vec[4].k, a, b, INT32_C( 132));
65896599
simde_test_x86_assert_equal_f64x2(r, simde_mm_loadu_pd(test_vec[4].r), 1);
6590-
#endif
65916600

65926601
src = simde_mm_loadu_pd(test_vec[5].src);
65936602
a = simde_mm_loadu_pd(test_vec[5].a);
65946603
b = simde_mm_loadu_pd(test_vec[5].b);
65956604
r = simde_mm_mask_roundscale_sd(src, test_vec[5].k, a, b, INT32_C( 176));
65966605
simde_test_x86_assert_equal_f64x2(r, simde_mm_loadu_pd(test_vec[5].r), 1);
65976606

6598-
#if !defined(SIMDE_FAST_MATH)
65996607
src = simde_mm_loadu_pd(test_vec[6].src);
66006608
a = simde_mm_loadu_pd(test_vec[6].a);
66016609
b = simde_mm_loadu_pd(test_vec[6].b);
@@ -6704,10 +6712,12 @@ test_simde_mm_maskz_roundscale_sd (SIMDE_MUNIT_TEST_ARGS) {
67046712
simde_test_x86_assert_equal_f64x2(r, simde_mm_loadu_pd(test_vec[0].r), 1);
67056713
#endif
67066714

6715+
#if !defined(SIMDE_FAST_MATH)
67076716
a = simde_mm_loadu_pd(test_vec[1].a);
67086717
b = simde_mm_loadu_pd(test_vec[1].b);
67096718
r = simde_mm_maskz_roundscale_sd(test_vec[1].k, a, b, INT32_C( 209));
67106719
simde_test_x86_assert_equal_f64x2(r, simde_mm_loadu_pd(test_vec[1].r), 1);
6720+
#endif
67116721

67126722
a = simde_mm_loadu_pd(test_vec[2].a);
67136723
b = simde_mm_loadu_pd(test_vec[2].b);

test/x86/avx512/roundscale_round.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1508,6 +1508,7 @@ test_simde_mm_roundscale_round_sd (SIMDE_MUNIT_TEST_ARGS) {
15081508
r = simde_mm_roundscale_round_sd(a, b, INT32_C( 84), INT32_C( 8));
15091509
simde_test_x86_assert_equal_f64x2(r, simde_mm_loadu_pd(test_vec[4].r), 1);
15101510

1511+
#if !defined(SIMDE_FAST_MATH)
15111512
a = simde_mm_loadu_pd(test_vec[5].a);
15121513
b = simde_mm_loadu_pd(test_vec[5].b);
15131514
r = simde_mm_roundscale_round_sd(a, b, INT32_C( 240), INT32_C( 4));
@@ -1517,6 +1518,7 @@ test_simde_mm_roundscale_round_sd (SIMDE_MUNIT_TEST_ARGS) {
15171518
b = simde_mm_loadu_pd(test_vec[6].b);
15181519
r = simde_mm_roundscale_round_sd(a, b, INT32_C( 33), INT32_C( 8));
15191520
simde_test_x86_assert_equal_f64x2(r, simde_mm_loadu_pd(test_vec[6].r), 1);
1521+
#endif
15201522

15211523
a = simde_mm_loadu_pd(test_vec[7].a);
15221524
b = simde_mm_loadu_pd(test_vec[7].b);

0 commit comments

Comments
 (0)