brintos

brintos / llvm-project-archived public Read only

0
0
Text · 16.8 KiB · b8c9842 Raw
605 lines · plain
1; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-unknown \2; RUN:   -ppc-reduce-cr-logicals=false < %s | FileCheck %s3; RUN: llc -verify-machineinstrs -mtriple=powerpc64le-unknown-unknown \4; RUN:   -ppc-reduce-cr-logicals=false < %s | FileCheck %s5 6define signext i32 @testi32slt(i32 signext %c1, i32 signext %c2, i32 signext %c3, i32 signext %c4, i32 signext %a1, i32 signext %a2) #0 {7; CHECK-LABEL: testi32slt8; CHECK: crorc [[REG:[0-9]+]], 2, 69; CHECK: bc 12, [[REG]], {{\.[a-zA-Z0-9_]+}}10entry:11  %cmp1 = icmp eq i32 %c3, %c412  %cmp3tmp = icmp eq i32 %c1, %c213  %cmp3 = icmp slt i1 %cmp3tmp, %cmp114  br i1 %cmp3, label %iftrue, label %iffalse15iftrue:16  ret i32 %a117iffalse:18  ret i32 %a219}20 21define signext i32 @testi32ult(i32 signext %c1, i32 signext %c2, i32 signext %c3, i32 signext %c4, i32 signext %a1, i32 signext %a2) #0 {22; CHECK-LABEL: testi32ult23; CHECK: crorc [[REG:[0-9]+]], 6, 224; CHECK: bc 12, [[REG]], {{\.[a-zA-Z0-9_]+}}25entry:26  %cmp1 = icmp eq i32 %c3, %c427  %cmp3tmp = icmp eq i32 %c1, %c228  %cmp3 = icmp ult i1 %cmp3tmp, %cmp129  br i1 %cmp3, label %iftrue, label %iffalse30iftrue:31  ret i32 %a132iffalse:33  ret i32 %a234}35 36define signext i32 @testi32sle(i32 signext %c1, i32 signext %c2, i32 signext %c3, i32 signext %c4, i32 signext %a1, i32 signext %a2) #0 {37; CHECK-LABEL: testi32sle38; CHECK: crandc [[REG:[0-9]+]], 2, 639; CHECK: bc 12, [[REG]], {{\.[a-zA-Z0-9_]+}}40entry:41  %cmp1 = icmp eq i32 %c3, %c442  %cmp3tmp = icmp eq i32 %c1, %c243  %cmp3 = icmp sle i1 %cmp3tmp, %cmp144  br i1 %cmp3, label %iftrue, label %iffalse45iftrue:46  ret i32 %a147iffalse:48  ret i32 %a249}50 51define signext i32 @testi32ule(i32 signext %c1, i32 signext %c2, i32 signext %c3, i32 signext %c4, i32 signext %a1, i32 signext %a2) #0 {52; CHECK-LABEL: testi32ule53; CHECK: crandc [[REG:[0-9]+]], 6, 254; CHECK: bc 12, [[REG]], {{\.[a-zA-Z0-9_]+}}55entry:56  %cmp1 = icmp eq i32 %c3, %c457  %cmp3tmp = icmp eq i32 %c1, %c258  %cmp3 = icmp ule i1 %cmp3tmp, %cmp159  br i1 %cmp3, label %iftrue, label %iffalse60iftrue:61  ret i32 %a162iffalse:63  ret i32 %a264}65 66define signext i32 @testi32eq(i32 signext %c1, i32 signext %c2, i32 signext %c3, i32 signext %c4, i32 signext %a1, i32 signext %a2) #0 {67; CHECK-LABEL: testi32eq:68; CHECK: crxor [[REG:[0-9]+]], 6, 269; CHECK: bc 12, [[REG]], {{\.[a-zA-Z0-9_]+}}70entry:71  %cmp1 = icmp eq i32 %c3, %c472  %cmp3tmp = icmp eq i32 %c1, %c273  %cmp3 = icmp eq i1 %cmp3tmp, %cmp174  br i1 %cmp3, label %iftrue, label %iffalse75iftrue:76  ret i32 %a177iffalse:78  ret i32 %a279}80 81define signext i32 @testi32sge(i32 signext %c1, i32 signext %c2, i32 signext %c3, i32 signext %c4, i32 signext %a1, i32 signext %a2) #0 {82; CHECK-LABEL: testi32sge:83; CHECK: crandc [[REG:[0-9]+]], 6, 284; CHECK: bc 12, [[REG]], {{\.[a-zA-Z0-9_]+}}85entry:86  %cmp1 = icmp eq i32 %c3, %c487  %cmp3tmp = icmp eq i32 %c1, %c288  %cmp3 = icmp sge i1 %cmp3tmp, %cmp189  br i1 %cmp3, label %iftrue, label %iffalse90iftrue:91  ret i32 %a192iffalse:93  ret i32 %a294}95 96define signext i32 @testi32uge(i32 signext %c1, i32 signext %c2, i32 signext %c3, i32 signext %c4, i32 signext %a1, i32 signext %a2) #0 {97; CHECK-LABEL: testi32uge:98; CHECK: crandc [[REG:[0-9]+]], 2, 699; CHECK: bc 12, [[REG]], {{\.[a-zA-Z0-9_]+}}100entry:101  %cmp1 = icmp eq i32 %c3, %c4102  %cmp3tmp = icmp eq i32 %c1, %c2103  %cmp3 = icmp uge i1 %cmp3tmp, %cmp1104  br i1 %cmp3, label %iftrue, label %iffalse105iftrue:106  ret i32 %a1107iffalse:108  ret i32 %a2109}110 111define signext i32 @testi32sgt(i32 signext %c1, i32 signext %c2, i32 signext %c3, i32 signext %c4, i32 signext %a1, i32 signext %a2) #0 {112; CHECK-LABEL: testi32sgt:113; CHECK: crorc [[REG:[0-9]+]], 6, 2114; CHECK: bc 12, [[REG]], {{\.[a-zA-Z0-9_]+}}115entry:116  %cmp1 = icmp eq i32 %c3, %c4117  %cmp3tmp = icmp eq i32 %c1, %c2118  %cmp3 = icmp sgt i1 %cmp3tmp, %cmp1119  br i1 %cmp3, label %iftrue, label %iffalse120iftrue:121  ret i32 %a1122iffalse:123  ret i32 %a2124}125 126define signext i32 @testi32ugt(i32 signext %c1, i32 signext %c2, i32 signext %c3, i32 signext %c4, i32 signext %a1, i32 signext %a2) #0 {127; CHECK-LABEL: testi32ugt:128; CHECK: crorc [[REG:[0-9]+]], 2, 6129; CHECK: bc 12, [[REG]], {{\.[a-zA-Z0-9_]+}}130entry:131  %cmp1 = icmp eq i32 %c3, %c4132  %cmp3tmp = icmp eq i32 %c1, %c2133  %cmp3 = icmp ugt i1 %cmp3tmp, %cmp1134  br i1 %cmp3, label %iftrue, label %iffalse135iftrue:136  ret i32 %a1137iffalse:138  ret i32 %a2139}140 141define signext i32 @testi32ne(i32 signext %c1, i32 signext %c2, i32 signext %c3, i32 signext %c4, i32 signext %a1, i32 signext %a2) #0 {142; CHECK-LABEL: testi32ne:143; CHECK: creqv [[REG:[0-9]+]], 6, 2144; CHECK: bc 12, [[REG]], {{\.[a-zA-Z0-9_]+}}145entry:146  %cmp1 = icmp eq i32 %c3, %c4147  %cmp3tmp = icmp eq i32 %c1, %c2148  %cmp3 = icmp ne i1 %cmp3tmp, %cmp1149  br i1 %cmp3, label %iftrue, label %iffalse150iftrue:151  ret i32 %a1152iffalse:153  ret i32 %a2154}155 156define i64 @testi64slt(i64 %c1, i64 %c2, i64 %c3, i64 %c4, i64 %a1, i64 %a2) #0 {157; CHECK-LABEL: testi64slt158; CHECK: crorc [[REG:[0-9]+]], 2, 6159; CHECK: bc 12, [[REG]], {{\.[a-zA-Z0-9_]+}}160entry:161  %cmp1 = icmp eq i64 %c3, %c4162  %cmp3tmp = icmp eq i64 %c1, %c2163  %cmp3 = icmp slt i1 %cmp3tmp, %cmp1164  br i1 %cmp3, label %iftrue, label %iffalse165iftrue:166  ret i64 %a1167iffalse:168  ret i64 %a2169}170 171define i64 @testi64ult(i64 %c1, i64 %c2, i64 %c3, i64 %c4, i64 %a1, i64 %a2) #0 {172; CHECK-LABEL: testi64ult173; CHECK: crorc [[REG:[0-9]+]], 6, 2174; CHECK: bc 12, [[REG]], {{\.[a-zA-Z0-9_]+}}175entry:176  %cmp1 = icmp eq i64 %c3, %c4177  %cmp3tmp = icmp eq i64 %c1, %c2178  %cmp3 = icmp ult i1 %cmp3tmp, %cmp1179  br i1 %cmp3, label %iftrue, label %iffalse180iftrue:181  ret i64 %a1182iffalse:183  ret i64 %a2184}185 186define i64 @testi64sle(i64 %c1, i64 %c2, i64 %c3, i64 %c4, i64 %a1, i64 %a2) #0 {187; CHECK-LABEL: testi64sle188; CHECK: crandc [[REG:[0-9]+]], 2, 6189; CHECK: bc 12, [[REG]], {{\.[a-zA-Z0-9_]+}}190entry:191  %cmp1 = icmp eq i64 %c3, %c4192  %cmp3tmp = icmp eq i64 %c1, %c2193  %cmp3 = icmp sle i1 %cmp3tmp, %cmp1194  br i1 %cmp3, label %iftrue, label %iffalse195iftrue:196  ret i64 %a1197iffalse:198  ret i64 %a2199}200 201define i64 @testi64ule(i64 %c1, i64 %c2, i64 %c3, i64 %c4, i64 %a1, i64 %a2) #0 {202; CHECK-LABEL: testi64ule203; CHECK: crandc [[REG:[0-9]+]], 6, 2204; CHECK: bc 12, [[REG]], {{\.[a-zA-Z0-9_]+}}205entry:206  %cmp1 = icmp eq i64 %c3, %c4207  %cmp3tmp = icmp eq i64 %c1, %c2208  %cmp3 = icmp ule i1 %cmp3tmp, %cmp1209  br i1 %cmp3, label %iftrue, label %iffalse210iftrue:211  ret i64 %a1212iffalse:213  ret i64 %a2214}215 216define i64 @testi64eq(i64 %c1, i64 %c2, i64 %c3, i64 %c4, i64 %a1, i64 %a2) #0 {217; CHECK-LABEL: testi64eq218; CHECK: crxor [[REG:[0-9]+]], 6, 2219; CHECK: bc 12, [[REG]], {{\.[a-zA-Z0-9_]+}}220entry:221  %cmp1 = icmp eq i64 %c3, %c4222  %cmp3tmp = icmp eq i64 %c1, %c2223  %cmp3 = icmp eq i1 %cmp3tmp, %cmp1224  br i1 %cmp3, label %iftrue, label %iffalse225iftrue:226  ret i64 %a1227iffalse:228  ret i64 %a2229}230 231define i64 @testi64sge(i64 %c1, i64 %c2, i64 %c3, i64 %c4, i64 %a1, i64 %a2) #0 {232; CHECK-LABEL: testi64sge233; CHECK: crandc [[REG:[0-9]+]], 6, 2234; CHECK: bc 12, [[REG]], {{\.[a-zA-Z0-9_]+}}235entry:236  %cmp1 = icmp eq i64 %c3, %c4237  %cmp3tmp = icmp eq i64 %c1, %c2238  %cmp3 = icmp sge i1 %cmp3tmp, %cmp1239  br i1 %cmp3, label %iftrue, label %iffalse240iftrue:241  ret i64 %a1242iffalse:243  ret i64 %a2244}245 246define i64 @testi64uge(i64 %c1, i64 %c2, i64 %c3, i64 %c4, i64 %a1, i64 %a2) #0 {247; CHECK-LABEL: testi64uge248; CHECK: crandc [[REG:[0-9]+]], 2, 6249; CHECK: bc 12, [[REG]], {{\.[a-zA-Z0-9_]+}}250entry:251  %cmp1 = icmp eq i64 %c3, %c4252  %cmp3tmp = icmp eq i64 %c1, %c2253  %cmp3 = icmp uge i1 %cmp3tmp, %cmp1254  br i1 %cmp3, label %iftrue, label %iffalse255iftrue:256  ret i64 %a1257iffalse:258  ret i64 %a2259}260 261define i64 @testi64sgt(i64 %c1, i64 %c2, i64 %c3, i64 %c4, i64 %a1, i64 %a2) #0 {262; CHECK-LABEL: testi64sgt263; CHECK: crorc [[REG:[0-9]+]], 6, 2264; CHECK: bc 12, [[REG]], {{\.[a-zA-Z0-9_]+}}265entry:266  %cmp1 = icmp eq i64 %c3, %c4267  %cmp3tmp = icmp eq i64 %c1, %c2268  %cmp3 = icmp sgt i1 %cmp3tmp, %cmp1269  br i1 %cmp3, label %iftrue, label %iffalse270iftrue:271  ret i64 %a1272iffalse:273  ret i64 %a2274}275 276define i64 @testi64ugt(i64 %c1, i64 %c2, i64 %c3, i64 %c4, i64 %a1, i64 %a2) #0 {277; CHECK-LABEL: testi64ugt278; CHECK: crorc [[REG:[0-9]+]], 2, 6279; CHECK: bc 12, [[REG]], {{\.[a-zA-Z0-9_]+}}280entry:281  %cmp1 = icmp eq i64 %c3, %c4282  %cmp3tmp = icmp eq i64 %c1, %c2283  %cmp3 = icmp ugt i1 %cmp3tmp, %cmp1284  br i1 %cmp3, label %iftrue, label %iffalse285iftrue:286  ret i64 %a1287iffalse:288  ret i64 %a2289}290 291define i64 @testi64ne(i64 %c1, i64 %c2, i64 %c3, i64 %c4, i64 %a1, i64 %a2) #0 {292; CHECK-LABEL: testi64ne293; CHECK: creqv [[REG:[0-9]+]], 6, 2294; CHECK: bc 12, [[REG]], {{\.[a-zA-Z0-9_]+}}295entry:296  %cmp1 = icmp eq i64 %c3, %c4297  %cmp3tmp = icmp eq i64 %c1, %c2298  %cmp3 = icmp ne i1 %cmp3tmp, %cmp1299  br i1 %cmp3, label %iftrue, label %iffalse300iftrue:301  ret i64 %a1302iffalse:303  ret i64 %a2304}305 306define float @testfloatslt(float %c1, float %c2, float %c3, float %c4, float %a1, float %a2) #0 {307; CHECK-LABEL: testfloatslt308; CHECK: crorc [[REG:[0-9]+]], 2, 6309; CHECK: bc 12, [[REG]], {{\.[a-zA-Z0-9_]+}}310entry:311  %cmp1 = fcmp oeq float %c3, %c4312  %cmp3tmp = fcmp oeq float %c1, %c2313  %cmp3 = icmp slt i1 %cmp3tmp, %cmp1314  br i1 %cmp3, label %iftrue, label %iffalse315iftrue:316  ret float %a1317iffalse:318  ret float %a2319}320 321define float @testfloatult(float %c1, float %c2, float %c3, float %c4, float %a1, float %a2) #0 {322; CHECK-LABEL: testfloatult323; CHECK: crorc [[REG:[0-9]+]], 6, 2324; CHECK: bc 12, [[REG]], {{\.[a-zA-Z0-9_]+}}325entry:326  %cmp1 = fcmp oeq float %c3, %c4327  %cmp3tmp = fcmp oeq float %c1, %c2328  %cmp3 = icmp ult i1 %cmp3tmp, %cmp1329  br i1 %cmp3, label %iftrue, label %iffalse330iftrue:331  ret float %a1332iffalse:333  ret float %a2334}335 336define float @testfloatsle(float %c1, float %c2, float %c3, float %c4, float %a1, float %a2) #0 {337; CHECK-LABEL: testfloatsle338; CHECK: crandc [[REG:[0-9]+]], 2, 6339; CHECK: bc 12, [[REG]], {{\.[a-zA-Z0-9_]+}}340entry:341  %cmp1 = fcmp oeq float %c3, %c4342  %cmp3tmp = fcmp oeq float %c1, %c2343  %cmp3 = icmp sle i1 %cmp3tmp, %cmp1344  br i1 %cmp3, label %iftrue, label %iffalse345iftrue:346  ret float %a1347iffalse:348  ret float %a2349}350 351define float @testfloatule(float %c1, float %c2, float %c3, float %c4, float %a1, float %a2) #0 {352; CHECK-LABEL: testfloatule353; CHECK: crandc [[REG:[0-9]+]], 6, 2354; CHECK: bc 12, [[REG]], {{\.[a-zA-Z0-9_]+}}355entry:356  %cmp1 = fcmp oeq float %c3, %c4357  %cmp3tmp = fcmp oeq float %c1, %c2358  %cmp3 = icmp ule i1 %cmp3tmp, %cmp1359  br i1 %cmp3, label %iftrue, label %iffalse360iftrue:361  ret float %a1362iffalse:363  ret float %a2364}365 366define float @testfloateq(float %c1, float %c2, float %c3, float %c4, float %a1, float %a2) #0 {367; CHECK-LABEL: testfloateq368; CHECK: crxor [[REG:[0-9]+]], 6, 2369; CHECK: bc 12, [[REG]], {{\.[a-zA-Z0-9_]+}}370entry:371  %cmp1 = fcmp oeq float %c3, %c4372  %cmp3tmp = fcmp oeq float %c1, %c2373  %cmp3 = icmp eq i1 %cmp3tmp, %cmp1374  br i1 %cmp3, label %iftrue, label %iffalse375iftrue:376  ret float %a1377iffalse:378  ret float %a2379}380 381define float @testfloatsge(float %c1, float %c2, float %c3, float %c4, float %a1, float %a2) #0 {382; CHECK-LABEL: testfloatsge383; CHECK: crandc [[REG:[0-9]+]], 6, 2384; CHECK: bc 12, [[REG]], {{\.[a-zA-Z0-9_]+}}385entry:386  %cmp1 = fcmp oeq float %c3, %c4387  %cmp3tmp = fcmp oeq float %c1, %c2388  %cmp3 = icmp sge i1 %cmp3tmp, %cmp1389  br i1 %cmp3, label %iftrue, label %iffalse390iftrue:391  ret float %a1392iffalse:393  ret float %a2394}395 396define float @testfloatuge(float %c1, float %c2, float %c3, float %c4, float %a1, float %a2) #0 {397; CHECK-LABEL: testfloatuge398; CHECK: crandc [[REG:[0-9]+]], 2, 6399; CHECK: bc 12, [[REG]], {{\.[a-zA-Z0-9_]+}}400entry:401  %cmp1 = fcmp oeq float %c3, %c4402  %cmp3tmp = fcmp oeq float %c1, %c2403  %cmp3 = icmp uge i1 %cmp3tmp, %cmp1404  br i1 %cmp3, label %iftrue, label %iffalse405iftrue:406  ret float %a1407iffalse:408  ret float %a2409}410 411define float @testfloatsgt(float %c1, float %c2, float %c3, float %c4, float %a1, float %a2) #0 {412; CHECK-LABEL: testfloatsgt413; CHECK: crorc [[REG:[0-9]+]], 6, 2414; CHECK: bc 12, [[REG]], {{\.[a-zA-Z0-9_]+}}415entry:416  %cmp1 = fcmp oeq float %c3, %c4417  %cmp3tmp = fcmp oeq float %c1, %c2418  %cmp3 = icmp sgt i1 %cmp3tmp, %cmp1419  br i1 %cmp3, label %iftrue, label %iffalse420iftrue:421  ret float %a1422iffalse:423  ret float %a2424}425 426define float @testfloatugt(float %c1, float %c2, float %c3, float %c4, float %a1, float %a2) #0 {427; CHECK-LABEL: testfloatugt428; CHECK: crorc [[REG:[0-9]+]], 2, 6429; CHECK: bc 12, [[REG]], {{\.[a-zA-Z0-9_]+}}430entry:431  %cmp1 = fcmp oeq float %c3, %c4432  %cmp3tmp = fcmp oeq float %c1, %c2433  %cmp3 = icmp ugt i1 %cmp3tmp, %cmp1434  br i1 %cmp3, label %iftrue, label %iffalse435iftrue:436  ret float %a1437iffalse:438  ret float %a2439}440 441define float @testfloatne(float %c1, float %c2, float %c3, float %c4, float %a1, float %a2) #0 {442; CHECK-LABEL: testfloatne443; CHECK: creqv [[REG:[0-9]+]], 6, 2444; CHECK: bc 12, [[REG]], {{\.[a-zA-Z0-9_]+}}445entry:446  %cmp1 = fcmp oeq float %c3, %c4447  %cmp3tmp = fcmp oeq float %c1, %c2448  %cmp3 = icmp ne i1 %cmp3tmp, %cmp1449  br i1 %cmp3, label %iftrue, label %iffalse450iftrue:451  ret float %a1452iffalse:453  ret float %a2454}455 456define double @testdoubleslt(double %c1, double %c2, double %c3, double %c4, double %a1, double %a2) #0 {457; CHECK-LABEL: testdoubleslt458; CHECK: crorc [[REG:[0-9]+]], 2, 6459; CHECK: bc 12, [[REG]], {{\.[a-zA-Z0-9_]+}}460entry:461  %cmp1 = fcmp oeq double %c3, %c4462  %cmp3tmp = fcmp oeq double %c1, %c2463  %cmp3 = icmp slt i1 %cmp3tmp, %cmp1464  br i1 %cmp3, label %iftrue, label %iffalse465iftrue:466  ret double %a1467iffalse:468  ret double %a2469}470 471define double @testdoubleult(double %c1, double %c2, double %c3, double %c4, double %a1, double %a2) #0 {472; CHECK-LABEL: testdoubleult:473; CHECK: crorc [[REG:[0-9]+]], 6, 2474; CHECK: bc 12, [[REG]], {{\.[a-zA-Z0-9_]+}}475entry:476  %cmp1 = fcmp oeq double %c3, %c4477  %cmp3tmp = fcmp oeq double %c1, %c2478  %cmp3 = icmp ult i1 %cmp3tmp, %cmp1479  br i1 %cmp3, label %iftrue, label %iffalse480iftrue:481  ret double %a1482iffalse:483  ret double %a2484}485 486define double @testdoublesle(double %c1, double %c2, double %c3, double %c4, double %a1, double %a2) #0 {487; CHECK-LABEL: testdoublesle488; CHECK: crandc [[REG:[0-9]+]], 2, 6489; CHECK: bc 12, [[REG]], {{\.[a-zA-Z0-9_]+}}490entry:491  %cmp1 = fcmp oeq double %c3, %c4492  %cmp3tmp = fcmp oeq double %c1, %c2493  %cmp3 = icmp sle i1 %cmp3tmp, %cmp1494  br i1 %cmp3, label %iftrue, label %iffalse495iftrue:496  ret double %a1497iffalse:498  ret double %a2499}500 501define double @testdoubleule(double %c1, double %c2, double %c3, double %c4, double %a1, double %a2) #0 {502; CHECK-LABEL: testdoubleule:503; CHECK: crandc [[REG:[0-9]+]], 6, 2504; CHECK: bc 12, [[REG]], {{\.[a-zA-Z0-9_]+}}505entry:506  %cmp1 = fcmp oeq double %c3, %c4507  %cmp3tmp = fcmp oeq double %c1, %c2508  %cmp3 = icmp ule i1 %cmp3tmp, %cmp1509  br i1 %cmp3, label %iftrue, label %iffalse510iftrue:511  ret double %a1512iffalse:513  ret double %a2514}515 516define double @testdoubleeq(double %c1, double %c2, double %c3, double %c4, double %a1, double %a2) #0 {517; CHECK-LABEL: testdoubleeq518; CHECK: crxor [[REG:[0-9]+]], 6, 2519; CHECK: bc 12, [[REG]], {{\.[a-zA-Z0-9_]+}}520entry:521  %cmp1 = fcmp oeq double %c3, %c4522  %cmp3tmp = fcmp oeq double %c1, %c2523  %cmp3 = icmp eq i1 %cmp3tmp, %cmp1524  br i1 %cmp3, label %iftrue, label %iffalse525iftrue:526  ret double %a1527iffalse:528  ret double %a2529}530 531define double @testdoublesge(double %c1, double %c2, double %c3, double %c4, double %a1, double %a2) #0 {532; CHECK-LABEL: testdoublesge533; CHECK: crandc [[REG:[0-9]+]], 6, 2534; CHECK: bc 12, [[REG]], {{\.[a-zA-Z0-9_]+}}535entry:536  %cmp1 = fcmp oeq double %c3, %c4537  %cmp3tmp = fcmp oeq double %c1, %c2538  %cmp3 = icmp sge i1 %cmp3tmp, %cmp1539  br i1 %cmp3, label %iftrue, label %iffalse540iftrue:541  ret double %a1542iffalse:543  ret double %a2544}545 546define double @testdoubleuge(double %c1, double %c2, double %c3, double %c4, double %a1, double %a2) #0 {547; CHECK-LABEL: testdoubleuge548; CHECK: crandc [[REG:[0-9]+]], 2, 6549; CHECK: bc 12, [[REG]], {{\.[a-zA-Z0-9_]+}}550entry:551  %cmp1 = fcmp oeq double %c3, %c4552  %cmp3tmp = fcmp oeq double %c1, %c2553  %cmp3 = icmp uge i1 %cmp3tmp, %cmp1554  br i1 %cmp3, label %iftrue, label %iffalse555iftrue:556  ret double %a1557iffalse:558  ret double %a2559}560 561define double @testdoublesgt(double %c1, double %c2, double %c3, double %c4, double %a1, double %a2) #0 {562; CHECK-LABEL: testdoublesgt:563; CHECK: crorc [[REG:[0-9]+]], 6, 2564; CHECK: bc 12, [[REG]], {{\.[a-zA-Z0-9_]+}}565entry:566  %cmp1 = fcmp oeq double %c3, %c4567  %cmp3tmp = fcmp oeq double %c1, %c2568  %cmp3 = icmp sgt i1 %cmp3tmp, %cmp1569  br i1 %cmp3, label %iftrue, label %iffalse570iftrue:571  ret double %a1572iffalse:573  ret double %a2574}575 576define double @testdoubleugt(double %c1, double %c2, double %c3, double %c4, double %a1, double %a2) #0 {577; CHECK-LABEL: testdoubleugt578; CHECK: crorc [[REG:[0-9]+]], 2, 6579; CHECK: bc 12, [[REG]], {{\.[a-zA-Z0-9_]+}}580entry:581  %cmp1 = fcmp oeq double %c3, %c4582  %cmp3tmp = fcmp oeq double %c1, %c2583  %cmp3 = icmp ugt i1 %cmp3tmp, %cmp1584  br i1 %cmp3, label %iftrue, label %iffalse585iftrue:586  ret double %a1587iffalse:588  ret double %a2589}590 591define double @testdoublene(double %c1, double %c2, double %c3, double %c4, double %a1, double %a2) #0 {592; CHECK-LABEL: testdoublene593; CHECK: creqv [[REG:[0-9]+]], 6, 2594; CHECK: bc 12, [[REG]], {{\.[a-zA-Z0-9_]+}}595entry:596  %cmp1 = fcmp oeq double %c3, %c4597  %cmp3tmp = fcmp oeq double %c1, %c2598  %cmp3 = icmp ne i1 %cmp3tmp, %cmp1599  br i1 %cmp3, label %iftrue, label %iffalse600iftrue:601  ret double %a1602iffalse:603  ret double %a2604}605