@@ -3249,76 +3249,109 @@ define <2 x i64> @fcmone2xdouble_fast(<2 x double> %A, <2 x double> %B) {
32493249}
32503250
32513251define  <2  x i32 > @fcmord2xfloat_fast (<2  x float > %A , <2  x float > %B ) {
3252- ; CHECK-LABEL: fcmord2xfloat_fast: 
3253- ; CHECK:       // %bb.0: 
3254- ; CHECK-NEXT:    fcmge v2.2s, v0.2s, v1.2s 
3255- ; CHECK-NEXT:    fcmgt v0.2s, v1.2s, v0.2s 
3256- ; CHECK-NEXT:    orr v0.8b, v0.8b, v2.8b 
3257- ; CHECK-NEXT:    ret 
3252+ ; CHECK-SD-LABEL: fcmord2xfloat_fast: 
3253+ ; CHECK-SD:       // %bb.0: 
3254+ ; CHECK-SD-NEXT:    fcmeq v0.2s, v0.2s, v0.2s 
3255+ ; CHECK-SD-NEXT:    ret 
3256+ ; 
3257+ ; CHECK-GI-LABEL: fcmord2xfloat_fast: 
3258+ ; CHECK-GI:       // %bb.0: 
3259+ ; CHECK-GI-NEXT:    fcmge v2.2s, v0.2s, v1.2s 
3260+ ; CHECK-GI-NEXT:    fcmgt v0.2s, v1.2s, v0.2s 
3261+ ; CHECK-GI-NEXT:    orr v0.8b, v0.8b, v2.8b 
3262+ ; CHECK-GI-NEXT:    ret 
32583263  %tmp3  = fcmp  fast ord  <2  x float > %A , %B 
32593264  %tmp4  = sext  <2  x i1 > %tmp3  to  <2  x i32 >
32603265  ret  <2  x i32 > %tmp4 
32613266}
32623267
32633268define  <4  x i32 > @fcmord4xfloat_fast (<4  x float > %A , <4  x float > %B ) {
3264- ; CHECK-LABEL: fcmord4xfloat_fast: 
3265- ; CHECK:       // %bb.0: 
3266- ; CHECK-NEXT:    fcmge v2.4s, v0.4s, v1.4s 
3267- ; CHECK-NEXT:    fcmgt v0.4s, v1.4s, v0.4s 
3268- ; CHECK-NEXT:    orr v0.16b, v0.16b, v2.16b 
3269- ; CHECK-NEXT:    ret 
3269+ ; CHECK-SD-LABEL: fcmord4xfloat_fast: 
3270+ ; CHECK-SD:       // %bb.0: 
3271+ ; CHECK-SD-NEXT:    fcmeq v0.4s, v0.4s, v0.4s 
3272+ ; CHECK-SD-NEXT:    ret 
3273+ ; 
3274+ ; CHECK-GI-LABEL: fcmord4xfloat_fast: 
3275+ ; CHECK-GI:       // %bb.0: 
3276+ ; CHECK-GI-NEXT:    fcmge v2.4s, v0.4s, v1.4s 
3277+ ; CHECK-GI-NEXT:    fcmgt v0.4s, v1.4s, v0.4s 
3278+ ; CHECK-GI-NEXT:    orr v0.16b, v0.16b, v2.16b 
3279+ ; CHECK-GI-NEXT:    ret 
32703280  %tmp3  = fcmp  fast ord  <4  x float > %A , %B 
32713281  %tmp4  = sext  <4  x i1 > %tmp3  to  <4  x i32 >
32723282  ret  <4  x i32 > %tmp4 
32733283}
32743284
32753285define  <2  x i64 > @fcmord2xdouble_fast (<2  x double > %A , <2  x double > %B ) {
3276- ; CHECK-LABEL: fcmord2xdouble_fast: 
3277- ; CHECK:       // %bb.0: 
3278- ; CHECK-NEXT:    fcmge v2.2d, v0.2d, v1.2d 
3279- ; CHECK-NEXT:    fcmgt v0.2d, v1.2d, v0.2d 
3280- ; CHECK-NEXT:    orr v0.16b, v0.16b, v2.16b 
3281- ; CHECK-NEXT:    ret 
3286+ ; CHECK-SD-LABEL: fcmord2xdouble_fast: 
3287+ ; CHECK-SD:       // %bb.0: 
3288+ ; CHECK-SD-NEXT:    fcmeq v0.2d, v0.2d, v0.2d 
3289+ ; CHECK-SD-NEXT:    ret 
3290+ ; 
3291+ ; CHECK-GI-LABEL: fcmord2xdouble_fast: 
3292+ ; CHECK-GI:       // %bb.0: 
3293+ ; CHECK-GI-NEXT:    fcmge v2.2d, v0.2d, v1.2d 
3294+ ; CHECK-GI-NEXT:    fcmgt v0.2d, v1.2d, v0.2d 
3295+ ; CHECK-GI-NEXT:    orr v0.16b, v0.16b, v2.16b 
3296+ ; CHECK-GI-NEXT:    ret 
32823297  %tmp3  = fcmp  fast ord  <2  x double > %A , %B 
32833298  %tmp4  = sext  <2  x i1 > %tmp3  to  <2  x i64 >
32843299  ret  <2  x i64 > %tmp4 
32853300}
32863301
32873302
32883303define  <2  x i32 > @fcmuno2xfloat_fast (<2  x float > %A , <2  x float > %B ) {
3289- ; CHECK-LABEL: fcmuno2xfloat_fast: 
3290- ; CHECK:       // %bb.0: 
3291- ; CHECK-NEXT:    fcmge v2.2s, v0.2s, v1.2s 
3292- ; CHECK-NEXT:    fcmgt v0.2s, v1.2s, v0.2s 
3293- ; CHECK-NEXT:    orr v0.8b, v0.8b, v2.8b 
3294- ; CHECK-NEXT:    mvn v0.8b, v0.8b 
3295- ; CHECK-NEXT:    ret 
3304+ ; CHECK-SD-LABEL: fcmuno2xfloat_fast: 
3305+ ; CHECK-SD:       // %bb.0: 
3306+ ; CHECK-SD-NEXT:    fcmeq v0.2s, v0.2s, v0.2s 
3307+ ; CHECK-SD-NEXT:    mvn v0.8b, v0.8b 
3308+ ; CHECK-SD-NEXT:    ret 
3309+ ; 
3310+ ; CHECK-GI-LABEL: fcmuno2xfloat_fast: 
3311+ ; CHECK-GI:       // %bb.0: 
3312+ ; CHECK-GI-NEXT:    fcmge v2.2s, v0.2s, v1.2s 
3313+ ; CHECK-GI-NEXT:    fcmgt v0.2s, v1.2s, v0.2s 
3314+ ; CHECK-GI-NEXT:    orr v0.8b, v0.8b, v2.8b 
3315+ ; CHECK-GI-NEXT:    mvn v0.8b, v0.8b 
3316+ ; CHECK-GI-NEXT:    ret 
32963317  %tmp3  = fcmp  fast uno  <2  x float > %A , %B 
32973318  %tmp4  = sext  <2  x i1 > %tmp3  to  <2  x i32 >
32983319  ret  <2  x i32 > %tmp4 
32993320}
33003321
33013322define  <4  x i32 > @fcmuno4xfloat_fast (<4  x float > %A , <4  x float > %B ) {
3302- ; CHECK-LABEL: fcmuno4xfloat_fast: 
3303- ; CHECK:       // %bb.0: 
3304- ; CHECK-NEXT:    fcmge v2.4s, v0.4s, v1.4s 
3305- ; CHECK-NEXT:    fcmgt v0.4s, v1.4s, v0.4s 
3306- ; CHECK-NEXT:    orr v0.16b, v0.16b, v2.16b 
3307- ; CHECK-NEXT:    mvn v0.16b, v0.16b 
3308- ; CHECK-NEXT:    ret 
3323+ ; CHECK-SD-LABEL: fcmuno4xfloat_fast: 
3324+ ; CHECK-SD:       // %bb.0: 
3325+ ; CHECK-SD-NEXT:    fcmeq v0.4s, v0.4s, v0.4s 
3326+ ; CHECK-SD-NEXT:    mvn v0.16b, v0.16b 
3327+ ; CHECK-SD-NEXT:    ret 
3328+ ; 
3329+ ; CHECK-GI-LABEL: fcmuno4xfloat_fast: 
3330+ ; CHECK-GI:       // %bb.0: 
3331+ ; CHECK-GI-NEXT:    fcmge v2.4s, v0.4s, v1.4s 
3332+ ; CHECK-GI-NEXT:    fcmgt v0.4s, v1.4s, v0.4s 
3333+ ; CHECK-GI-NEXT:    orr v0.16b, v0.16b, v2.16b 
3334+ ; CHECK-GI-NEXT:    mvn v0.16b, v0.16b 
3335+ ; CHECK-GI-NEXT:    ret 
33093336  %tmp3  = fcmp  fast uno  <4  x float > %A , %B 
33103337  %tmp4  = sext  <4  x i1 > %tmp3  to  <4  x i32 >
33113338  ret  <4  x i32 > %tmp4 
33123339}
33133340
33143341define  <2  x i64 > @fcmuno2xdouble_fast (<2  x double > %A , <2  x double > %B ) {
3315- ; CHECK-LABEL: fcmuno2xdouble_fast: 
3316- ; CHECK:       // %bb.0: 
3317- ; CHECK-NEXT:    fcmge v2.2d, v0.2d, v1.2d 
3318- ; CHECK-NEXT:    fcmgt v0.2d, v1.2d, v0.2d 
3319- ; CHECK-NEXT:    orr v0.16b, v0.16b, v2.16b 
3320- ; CHECK-NEXT:    mvn v0.16b, v0.16b 
3321- ; CHECK-NEXT:    ret 
3342+ ; CHECK-SD-LABEL: fcmuno2xdouble_fast: 
3343+ ; CHECK-SD:       // %bb.0: 
3344+ ; CHECK-SD-NEXT:    fcmeq v0.2d, v0.2d, v0.2d 
3345+ ; CHECK-SD-NEXT:    mvn v0.16b, v0.16b 
3346+ ; CHECK-SD-NEXT:    ret 
3347+ ; 
3348+ ; CHECK-GI-LABEL: fcmuno2xdouble_fast: 
3349+ ; CHECK-GI:       // %bb.0: 
3350+ ; CHECK-GI-NEXT:    fcmge v2.2d, v0.2d, v1.2d 
3351+ ; CHECK-GI-NEXT:    fcmgt v0.2d, v1.2d, v0.2d 
3352+ ; CHECK-GI-NEXT:    orr v0.16b, v0.16b, v2.16b 
3353+ ; CHECK-GI-NEXT:    mvn v0.16b, v0.16b 
3354+ ; CHECK-GI-NEXT:    ret 
33223355  %tmp3  = fcmp  fast uno  <2  x double > %A , %B 
33233356  %tmp4  = sext  <2  x i1 > %tmp3  to  <2  x i64 >
33243357  ret  <2  x i64 > %tmp4 
0 commit comments