Home | History | Annotate | Download | only in GlobalISel
      1 # RUN: llc -mtriple arm-gnueabihf -mattr=+vfp4 -run-pass=instruction-select -o - %s | FileCheck %s
      2 --- |
      3   declare double @llvm.fma.f64(double, double, double) #0
      4   
      5   define double @vfnmsd(double %x, double %y, double %z) #1 {
      6     %minus.y = fsub double -0.000000e+00, %y
      7     %fma = tail call double @llvm.fma.f64(double %x, double %minus.y, double %z)
      8     %minus.fma = fsub double -0.000000e+00, %fma
      9     ret double %minus.fma
     10   }
     11   
     12   ; Function Attrs: nounwind
     13   declare void @llvm.stackprotector(i8*, i8**) #2
     14   
     15   attributes #0 = { nounwind readnone speculatable "target-features"="+vfp4" }
     16   attributes #1 = { "target-features"="+vfp4" }
     17   attributes #2 = { nounwind }
     18 
     19 ...
     20 ---
     21 name:            vfnmsd
     22 legalized:       true
     23 regBankSelected: true
     24 selected:        false
     25 body:             |
     26   bb.1 (%ir-block.0):
     27     liveins: $d0, $d1, $d2
     28   
     29     %0:fprb(s64) = COPY $d0
     30     %1:fprb(s64) = COPY $d1
     31     %2:fprb(s64) = COPY $d2
     32     %3:fprb(s64) = G_FNEG %1
     33     %4:fprb(s64) = G_FMA %0, %3, %2
     34     %5:fprb(s64) = G_FNEG %4
     35     $d0 = COPY %5(s64)
     36     MOVPCLR 14, $noreg, implicit $d0
     37 
     38 # CHECK: %{{[0-9]+}}:dpr = VFNMSD %{{[0-9]+}}, %{{[0-9]+}}, %{{[0-9]+}}, 14, $noreg
     39 
     40 ...
     41