125a41ad2SNemanja Ivanovic; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py 225a41ad2SNemanja Ivanovic; RUN: llc -mcpu=pwr8 -ppc-asm-full-reg-names --enable-unsafe-fp-math \ 325a41ad2SNemanja Ivanovic; RUN: -verify-machineinstrs --enable-no-signed-zeros-fp-math \ 425a41ad2SNemanja Ivanovic; RUN: --enable-no-nans-fp-math \ 525a41ad2SNemanja Ivanovic; RUN: -mtriple=powerpc64le-unknown-unknown < %s | FileCheck %s 625a41ad2SNemanja Ivanovic; RUN: llc -mcpu=pwr9 -ppc-asm-full-reg-names --enable-unsafe-fp-math \ 725a41ad2SNemanja Ivanovic; RUN: -verify-machineinstrs --enable-no-signed-zeros-fp-math \ 825a41ad2SNemanja Ivanovic; RUN: --enable-no-nans-fp-math \ 925a41ad2SNemanja Ivanovic; RUN: -mtriple=powerpc64le-unknown-unknown < %s | FileCheck %s 1025a41ad2SNemanja Ivanovic; RUN: llc -mcpu=pwr9 -ppc-asm-full-reg-names -verify-machineinstrs \ 1125a41ad2SNemanja Ivanovic; RUN: -mtriple=powerpc64le-unknown-unknown < %s | FileCheck %s \ 1225a41ad2SNemanja Ivanovic; RUN: --check-prefix=NO-FAST-P9 1325a41ad2SNemanja Ivanovic; RUN: llc -mcpu=pwr8 -ppc-asm-full-reg-names -verify-machineinstrs \ 1425a41ad2SNemanja Ivanovic; RUN: -mtriple=powerpc64le-unknown-unknown < %s | FileCheck %s \ 1525a41ad2SNemanja Ivanovic; RUN: --check-prefix=NO-FAST-P8 1625a41ad2SNemanja Ivanovicdefine dso_local float @testfmax(float %a, float %b) local_unnamed_addr { 1725a41ad2SNemanja Ivanovic; CHECK-LABEL: testfmax: 1825a41ad2SNemanja Ivanovic; CHECK: # %bb.0: # %entry 1925a41ad2SNemanja Ivanovic; CHECK-NEXT: xsmaxdp f1, f1, f2 2025a41ad2SNemanja Ivanovic; CHECK-NEXT: blr 2125a41ad2SNemanja Ivanovic; 2225a41ad2SNemanja Ivanovic; NO-FAST-P9-LABEL: testfmax: 2325a41ad2SNemanja Ivanovic; NO-FAST-P9: # %bb.0: # %entry 2425a41ad2SNemanja Ivanovic; NO-FAST-P9-NEXT: xsmaxcdp f1, f1, f2 2525a41ad2SNemanja Ivanovic; NO-FAST-P9-NEXT: blr 2625a41ad2SNemanja Ivanovic; 2725a41ad2SNemanja Ivanovic; NO-FAST-P8-LABEL: testfmax: 2825a41ad2SNemanja Ivanovic; NO-FAST-P8: # %bb.0: # %entry 2925a41ad2SNemanja Ivanovic; NO-FAST-P8-NEXT: fcmpu cr0, f1, f2 3025a41ad2SNemanja Ivanovic; NO-FAST-P8-NEXT: bgtlr cr0 3125a41ad2SNemanja Ivanovic; NO-FAST-P8-NEXT: # %bb.1: # %entry 3225a41ad2SNemanja Ivanovic; NO-FAST-P8-NEXT: fmr f1, f2 3325a41ad2SNemanja Ivanovic; NO-FAST-P8-NEXT: blr 3425a41ad2SNemanja Ivanovicentry: 3525a41ad2SNemanja Ivanovic %cmp = fcmp ogt float %a, %b 3625a41ad2SNemanja Ivanovic %cond = select i1 %cmp, float %a, float %b 3725a41ad2SNemanja Ivanovic ret float %cond 3825a41ad2SNemanja Ivanovic} 3925a41ad2SNemanja Ivanovic 4025a41ad2SNemanja Ivanovicdefine dso_local double @testdmax(double %a, double %b) local_unnamed_addr { 4125a41ad2SNemanja Ivanovic; CHECK-LABEL: testdmax: 4225a41ad2SNemanja Ivanovic; CHECK: # %bb.0: # %entry 4325a41ad2SNemanja Ivanovic; CHECK-NEXT: xsmaxdp f1, f1, f2 4425a41ad2SNemanja Ivanovic; CHECK-NEXT: blr 4525a41ad2SNemanja Ivanovic; 4625a41ad2SNemanja Ivanovic; NO-FAST-P9-LABEL: testdmax: 4725a41ad2SNemanja Ivanovic; NO-FAST-P9: # %bb.0: # %entry 4825a41ad2SNemanja Ivanovic; NO-FAST-P9-NEXT: xsmaxcdp f1, f1, f2 4925a41ad2SNemanja Ivanovic; NO-FAST-P9-NEXT: blr 5025a41ad2SNemanja Ivanovic; 5125a41ad2SNemanja Ivanovic; NO-FAST-P8-LABEL: testdmax: 5225a41ad2SNemanja Ivanovic; NO-FAST-P8: # %bb.0: # %entry 5325a41ad2SNemanja Ivanovic; NO-FAST-P8-NEXT: xscmpudp cr0, f1, f2 5425a41ad2SNemanja Ivanovic; NO-FAST-P8-NEXT: bgtlr cr0 5525a41ad2SNemanja Ivanovic; NO-FAST-P8-NEXT: # %bb.1: # %entry 5625a41ad2SNemanja Ivanovic; NO-FAST-P8-NEXT: fmr f1, f2 5725a41ad2SNemanja Ivanovic; NO-FAST-P8-NEXT: blr 5825a41ad2SNemanja Ivanovicentry: 5925a41ad2SNemanja Ivanovic %cmp = fcmp ogt double %a, %b 6025a41ad2SNemanja Ivanovic %cond = select i1 %cmp, double %a, double %b 6125a41ad2SNemanja Ivanovic ret double %cond 6225a41ad2SNemanja Ivanovic} 6325a41ad2SNemanja Ivanovic 6425a41ad2SNemanja Ivanovicdefine dso_local float @testfmin(float %a, float %b) local_unnamed_addr { 6525a41ad2SNemanja Ivanovic; CHECK-LABEL: testfmin: 6625a41ad2SNemanja Ivanovic; CHECK: # %bb.0: # %entry 6725a41ad2SNemanja Ivanovic; CHECK-NEXT: xsmindp f1, f1, f2 6825a41ad2SNemanja Ivanovic; CHECK-NEXT: blr 6925a41ad2SNemanja Ivanovic; 7025a41ad2SNemanja Ivanovic; NO-FAST-P9-LABEL: testfmin: 7125a41ad2SNemanja Ivanovic; NO-FAST-P9: # %bb.0: # %entry 7225a41ad2SNemanja Ivanovic; NO-FAST-P9-NEXT: xsmincdp f1, f1, f2 7325a41ad2SNemanja Ivanovic; NO-FAST-P9-NEXT: blr 7425a41ad2SNemanja Ivanovic; 7525a41ad2SNemanja Ivanovic; NO-FAST-P8-LABEL: testfmin: 7625a41ad2SNemanja Ivanovic; NO-FAST-P8: # %bb.0: # %entry 7725a41ad2SNemanja Ivanovic; NO-FAST-P8-NEXT: fcmpu cr0, f1, f2 7825a41ad2SNemanja Ivanovic; NO-FAST-P8-NEXT: bltlr cr0 7925a41ad2SNemanja Ivanovic; NO-FAST-P8-NEXT: # %bb.1: # %entry 8025a41ad2SNemanja Ivanovic; NO-FAST-P8-NEXT: fmr f1, f2 8125a41ad2SNemanja Ivanovic; NO-FAST-P8-NEXT: blr 8225a41ad2SNemanja Ivanovicentry: 8325a41ad2SNemanja Ivanovic %cmp = fcmp olt float %a, %b 8425a41ad2SNemanja Ivanovic %cond = select i1 %cmp, float %a, float %b 8525a41ad2SNemanja Ivanovic ret float %cond 8625a41ad2SNemanja Ivanovic} 8725a41ad2SNemanja Ivanovic 8825a41ad2SNemanja Ivanovicdefine dso_local double @testdmin(double %a, double %b) local_unnamed_addr { 8925a41ad2SNemanja Ivanovic; CHECK-LABEL: testdmin: 9025a41ad2SNemanja Ivanovic; CHECK: # %bb.0: # %entry 9125a41ad2SNemanja Ivanovic; CHECK-NEXT: xsmindp f1, f1, f2 9225a41ad2SNemanja Ivanovic; CHECK-NEXT: blr 9325a41ad2SNemanja Ivanovic; 9425a41ad2SNemanja Ivanovic; NO-FAST-P9-LABEL: testdmin: 9525a41ad2SNemanja Ivanovic; NO-FAST-P9: # %bb.0: # %entry 9625a41ad2SNemanja Ivanovic; NO-FAST-P9-NEXT: xsmincdp f1, f1, f2 9725a41ad2SNemanja Ivanovic; NO-FAST-P9-NEXT: blr 9825a41ad2SNemanja Ivanovic; 9925a41ad2SNemanja Ivanovic; NO-FAST-P8-LABEL: testdmin: 10025a41ad2SNemanja Ivanovic; NO-FAST-P8: # %bb.0: # %entry 10125a41ad2SNemanja Ivanovic; NO-FAST-P8-NEXT: xscmpudp cr0, f1, f2 10225a41ad2SNemanja Ivanovic; NO-FAST-P8-NEXT: bltlr cr0 10325a41ad2SNemanja Ivanovic; NO-FAST-P8-NEXT: # %bb.1: # %entry 10425a41ad2SNemanja Ivanovic; NO-FAST-P8-NEXT: fmr f1, f2 10525a41ad2SNemanja Ivanovic; NO-FAST-P8-NEXT: blr 10625a41ad2SNemanja Ivanovicentry: 10725a41ad2SNemanja Ivanovic %cmp = fcmp olt double %a, %b 10825a41ad2SNemanja Ivanovic %cond = select i1 %cmp, double %a, double %b 10925a41ad2SNemanja Ivanovic ret double %cond 11025a41ad2SNemanja Ivanovic} 11125a41ad2SNemanja Ivanovic 11225a41ad2SNemanja Ivanovicdefine dso_local float @testfmax_fast(float %a, float %b) local_unnamed_addr { 11325a41ad2SNemanja Ivanovic; CHECK-LABEL: testfmax_fast: 11425a41ad2SNemanja Ivanovic; CHECK: # %bb.0: # %entry 11525a41ad2SNemanja Ivanovic; CHECK-NEXT: xsmaxdp f1, f1, f2 11625a41ad2SNemanja Ivanovic; CHECK-NEXT: blr 11725a41ad2SNemanja Ivanovic; 11825a41ad2SNemanja Ivanovic; NO-FAST-P9-LABEL: testfmax_fast: 11925a41ad2SNemanja Ivanovic; NO-FAST-P9: # %bb.0: # %entry 12025a41ad2SNemanja Ivanovic; NO-FAST-P9-NEXT: xsmaxcdp f1, f1, f2 12125a41ad2SNemanja Ivanovic; NO-FAST-P9-NEXT: blr 12225a41ad2SNemanja Ivanovic; 12325a41ad2SNemanja Ivanovic; NO-FAST-P8-LABEL: testfmax_fast: 12425a41ad2SNemanja Ivanovic; NO-FAST-P8: # %bb.0: # %entry 125e9753822SQiu Chaofan; NO-FAST-P8-NEXT: xssubsp f0, f2, f1 126e9753822SQiu Chaofan; NO-FAST-P8-NEXT: fsel f1, f0, f2, f1 12725a41ad2SNemanja Ivanovic; NO-FAST-P8-NEXT: blr 12825a41ad2SNemanja Ivanovicentry: 129*2866c6caSQiu Chaofan %cmp = fcmp nnan ninf ogt float %a, %b 13025a41ad2SNemanja Ivanovic %cond = select i1 %cmp, float %a, float %b 13125a41ad2SNemanja Ivanovic ret float %cond 13225a41ad2SNemanja Ivanovic} 13325a41ad2SNemanja Ivanovicdefine dso_local double @testdmax_fast(double %a, double %b) local_unnamed_addr { 13425a41ad2SNemanja Ivanovic; CHECK-LABEL: testdmax_fast: 13525a41ad2SNemanja Ivanovic; CHECK: # %bb.0: # %entry 13625a41ad2SNemanja Ivanovic; CHECK-NEXT: xsmaxdp f1, f1, f2 13725a41ad2SNemanja Ivanovic; CHECK-NEXT: blr 13825a41ad2SNemanja Ivanovic; 13925a41ad2SNemanja Ivanovic; NO-FAST-P9-LABEL: testdmax_fast: 14025a41ad2SNemanja Ivanovic; NO-FAST-P9: # %bb.0: # %entry 14125a41ad2SNemanja Ivanovic; NO-FAST-P9-NEXT: xsmaxcdp f1, f1, f2 14225a41ad2SNemanja Ivanovic; NO-FAST-P9-NEXT: blr 14325a41ad2SNemanja Ivanovic; 14425a41ad2SNemanja Ivanovic; NO-FAST-P8-LABEL: testdmax_fast: 14525a41ad2SNemanja Ivanovic; NO-FAST-P8: # %bb.0: # %entry 146e9753822SQiu Chaofan; NO-FAST-P8-NEXT: xssubdp f0, f2, f1 147e9753822SQiu Chaofan; NO-FAST-P8-NEXT: fsel f1, f0, f2, f1 14825a41ad2SNemanja Ivanovic; NO-FAST-P8-NEXT: blr 14925a41ad2SNemanja Ivanovicentry: 150*2866c6caSQiu Chaofan %cmp = fcmp nnan ninf ogt double %a, %b 15125a41ad2SNemanja Ivanovic %cond = select i1 %cmp, double %a, double %b 15225a41ad2SNemanja Ivanovic ret double %cond 15325a41ad2SNemanja Ivanovic} 15425a41ad2SNemanja Ivanovicdefine dso_local float @testfmin_fast(float %a, float %b) local_unnamed_addr { 15525a41ad2SNemanja Ivanovic; CHECK-LABEL: testfmin_fast: 15625a41ad2SNemanja Ivanovic; CHECK: # %bb.0: # %entry 15725a41ad2SNemanja Ivanovic; CHECK-NEXT: xsmindp f1, f1, f2 15825a41ad2SNemanja Ivanovic; CHECK-NEXT: blr 15925a41ad2SNemanja Ivanovic; 16025a41ad2SNemanja Ivanovic; NO-FAST-P9-LABEL: testfmin_fast: 16125a41ad2SNemanja Ivanovic; NO-FAST-P9: # %bb.0: # %entry 16225a41ad2SNemanja Ivanovic; NO-FAST-P9-NEXT: xsmincdp f1, f1, f2 16325a41ad2SNemanja Ivanovic; NO-FAST-P9-NEXT: blr 16425a41ad2SNemanja Ivanovic; 16525a41ad2SNemanja Ivanovic; NO-FAST-P8-LABEL: testfmin_fast: 16625a41ad2SNemanja Ivanovic; NO-FAST-P8: # %bb.0: # %entry 167e9753822SQiu Chaofan; NO-FAST-P8-NEXT: xssubsp f0, f1, f2 168e9753822SQiu Chaofan; NO-FAST-P8-NEXT: fsel f1, f0, f2, f1 16925a41ad2SNemanja Ivanovic; NO-FAST-P8-NEXT: blr 17025a41ad2SNemanja Ivanovicentry: 171*2866c6caSQiu Chaofan %cmp = fcmp nnan ninf olt float %a, %b 17225a41ad2SNemanja Ivanovic %cond = select i1 %cmp, float %a, float %b 17325a41ad2SNemanja Ivanovic ret float %cond 17425a41ad2SNemanja Ivanovic} 17525a41ad2SNemanja Ivanovicdefine dso_local double @testdmin_fast(double %a, double %b) local_unnamed_addr { 17625a41ad2SNemanja Ivanovic; CHECK-LABEL: testdmin_fast: 17725a41ad2SNemanja Ivanovic; CHECK: # %bb.0: # %entry 17825a41ad2SNemanja Ivanovic; CHECK-NEXT: xsmindp f1, f1, f2 17925a41ad2SNemanja Ivanovic; CHECK-NEXT: blr 18025a41ad2SNemanja Ivanovic; 18125a41ad2SNemanja Ivanovic; NO-FAST-P9-LABEL: testdmin_fast: 18225a41ad2SNemanja Ivanovic; NO-FAST-P9: # %bb.0: # %entry 18325a41ad2SNemanja Ivanovic; NO-FAST-P9-NEXT: xsmincdp f1, f1, f2 18425a41ad2SNemanja Ivanovic; NO-FAST-P9-NEXT: blr 18525a41ad2SNemanja Ivanovic; 18625a41ad2SNemanja Ivanovic; NO-FAST-P8-LABEL: testdmin_fast: 18725a41ad2SNemanja Ivanovic; NO-FAST-P8: # %bb.0: # %entry 188e9753822SQiu Chaofan; NO-FAST-P8-NEXT: xssubdp f0, f1, f2 189e9753822SQiu Chaofan; NO-FAST-P8-NEXT: fsel f1, f0, f2, f1 19025a41ad2SNemanja Ivanovic; NO-FAST-P8-NEXT: blr 19125a41ad2SNemanja Ivanovicentry: 192*2866c6caSQiu Chaofan %cmp = fcmp nnan ninf olt double %a, %b 19325a41ad2SNemanja Ivanovic %cond = select i1 %cmp, double %a, double %b 19425a41ad2SNemanja Ivanovic ret double %cond 19525a41ad2SNemanja Ivanovic} 196