@@ -53,9 +53,10 @@ simde_vext_f16(simde_float16x4_t a, simde_float16x4_t b, const int n)
5353 r_ .sv64 = __riscv_vslideup_vx_f16m1 (a_ .sv64 , b_ .sv64 , 4 - n , 4 );
5454 #else
5555 const size_t n_ = HEDLEY_STATIC_CAST (size_t , n );
56- for (size_t i = 0 ; i < (sizeof (r_ .values ) / sizeof (r_ .values [0 ])) ; i ++ ) {
56+ const size_t len = sizeof (r_ .values ) / sizeof (r_ .values [0 ]);
57+ for (size_t i = 0 ; i < len ; i ++ ) {
5758 size_t src = i + n_ ;
58- r_ .values [i ] = (src < ( sizeof ( r_ . values ) / sizeof ( r_ . values [ 0 ])) ) ? a_ .values [src ] : b_ .values [src & 3 ];
59+ r_ .values [i ] = (src < len ) ? a_ .values [src ] : b_ .values [src & 3 ];
5960 }
6061 #endif
6162 return simde_float16x4_from_private (r_ );
@@ -500,9 +501,10 @@ simde_vextq_f16(simde_float16x8_t a, simde_float16x8_t b, const int n)
500501 r_ .sv128 = __riscv_vslideup_vx_f16m1 (a_ .sv128 , b_ .sv128 , 8 - n , 8 );
501502 #else
502503 const size_t n_ = HEDLEY_STATIC_CAST (size_t , n );
503- for (size_t i = 0 ; i < (sizeof (r_ .values ) / sizeof (r_ .values [0 ])) ; i ++ ) {
504+ const size_t len = sizeof (r_ .values ) / sizeof (r_ .values [0 ]);
505+ for (size_t i = 0 ; i < len ; i ++ ) {
504506 size_t src = i + n_ ;
505- r_ .values [i ] = (src < ( sizeof ( r_ . values ) / sizeof ( r_ . values [ 0 ])) ) ? a_ .values [src ] : b_ .values [src & 7 ];
507+ r_ .values [i ] = (src < len ) ? a_ .values [src ] : b_ .values [src & 7 ];
506508 }
507509 #endif
508510 return simde_float16x8_from_private (r_ );
@@ -1106,9 +1108,10 @@ simde_vextq_p8(simde_poly8x16_t a, simde_poly8x16_t b, const int n)
11061108 b_ = simde_poly8x16_to_private (b ),
11071109 r_ = a_ ;
11081110 const size_t n_ = HEDLEY_STATIC_CAST (size_t , n );
1109- for (size_t i = 0 ; i < (sizeof (r_ .values ) / sizeof (r_ .values [0 ])) ; i ++ ) {
1111+ const size_t len = sizeof (r_ .values ) / sizeof (r_ .values [0 ]);
1112+ for (size_t i = 0 ; i < len ; i ++ ) {
11101113 size_t src = i + n_ ;
1111- r_ .values [i ] = (src < ( sizeof ( r_ . values ) / sizeof ( r_ . values [ 0 ])) ) ? a_ .values [src ] : b_ .values [src & 15 ];
1114+ r_ .values [i ] = (src < len ) ? a_ .values [src ] : b_ .values [src & 15 ];
11121115 }
11131116 return simde_poly8x16_from_private (r_ );
11141117 #endif
@@ -1132,9 +1135,10 @@ simde_vextq_p16(simde_poly16x8_t a, simde_poly16x8_t b, const int n)
11321135 b_ = simde_poly16x8_to_private (b ),
11331136 r_ = a_ ;
11341137 const size_t n_ = HEDLEY_STATIC_CAST (size_t , n );
1135- for (size_t i = 0 ; i < (sizeof (r_ .values ) / sizeof (r_ .values [0 ])) ; i ++ ) {
1138+ const size_t len = sizeof (r_ .values ) / sizeof (r_ .values [0 ]);
1139+ for (size_t i = 0 ; i < len ; i ++ ) {
11361140 size_t src = i + n_ ;
1137- r_ .values [i ] = (src < ( sizeof ( r_ . values ) / sizeof ( r_ . values [ 0 ])) ) ? a_ .values [src ] : b_ .values [src & 7 ];
1141+ r_ .values [i ] = (src < len ) ? a_ .values [src ] : b_ .values [src & 7 ];
11381142 }
11391143 return simde_poly16x8_from_private (r_ );
11401144 #endif
0 commit comments