125 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -o - -mtriple=aarch64-unknown-unknown -run-pass=aarch64-prelegalizer-combiner -verify-machineinstrs %s | FileCheck %s3 4---5name: fpowi_s64_zero6body: |7 bb.0:8 liveins: $d0, $w09 10 ; CHECK-LABEL: name: fpowi_s64_zero11 ; CHECK: liveins: $d0, $w012 ; CHECK-NEXT: {{ $}}13 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_FCONSTANT double 1.000000e+0014 ; CHECK-NEXT: $d0 = COPY [[C]](s64)15 %0:_(s64) = COPY $d016 %1:_(s32) = COPY $w017 %2:_(s32) = G_CONSTANT i32 018 %3:_(s64) = nnan ninf nsz arcp contract afn reassoc G_FPOWI %0, %2(s32)19 $d0 = COPY %3(s64)20...21 22---23name: fpowi_s32_zero24body: |25 bb.0:26 liveins: $d0, $w027 28 ; CHECK-LABEL: name: fpowi_s32_zero29 ; CHECK: liveins: $d0, $w030 ; CHECK-NEXT: {{ $}}31 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_FCONSTANT float 1.000000e+0032 ; CHECK-NEXT: $s0 = COPY [[C]](s32)33 %0:_(s32) = COPY $s034 %1:_(s32) = COPY $w035 %2:_(s32) = G_CONSTANT i32 036 %3:_(s32) = nnan ninf nsz arcp contract afn reassoc G_FPOWI %0, %2(s32)37 $s0 = COPY %3(s32)38...39 40---41name: fpowi_positive42body: |43 bb.0:44 liveins: $d0, $w045 46 ; CHECK-LABEL: name: fpowi_positive47 ; CHECK: liveins: $d0, $w048 ; CHECK-NEXT: {{ $}}49 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $d050 ; CHECK-NEXT: [[FMUL:%[0-9]+]]:_(s64) = G_FMUL [[COPY]], [[COPY]]51 ; CHECK-NEXT: [[FMUL1:%[0-9]+]]:_(s64) = G_FMUL [[FMUL]], [[FMUL]]52 ; CHECK-NEXT: [[FMUL2:%[0-9]+]]:_(s64) = G_FMUL [[COPY]], [[FMUL1]]53 ; CHECK-NEXT: $d0 = COPY [[FMUL2]](s64)54 %0:_(s64) = COPY $d055 %1:_(s32) = COPY $w056 %2:_(s32) = G_CONSTANT i32 557 %3:_(s64) = nnan ninf nsz arcp contract afn reassoc G_FPOWI %0, %2(s32)58 $d0 = COPY %3(s64)59...60 61---62name: fpowi_s64_negative63body: |64 bb.0:65 liveins: $d0, $w066 67 ; CHECK-LABEL: name: fpowi_s64_negative68 ; CHECK: liveins: $d0, $w069 ; CHECK-NEXT: {{ $}}70 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $d071 ; CHECK-NEXT: [[FMUL:%[0-9]+]]:_(s64) = G_FMUL [[COPY]], [[COPY]]72 ; CHECK-NEXT: [[FMUL1:%[0-9]+]]:_(s64) = G_FMUL [[FMUL]], [[FMUL]]73 ; CHECK-NEXT: [[FMUL2:%[0-9]+]]:_(s64) = G_FMUL [[COPY]], [[FMUL1]]74 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_FCONSTANT double 1.000000e+0075 ; CHECK-NEXT: [[FDIV:%[0-9]+]]:_(s64) = nnan ninf nsz arcp contract afn reassoc G_FDIV [[C]], [[FMUL2]]76 ; CHECK-NEXT: $d0 = COPY [[FDIV]](s64)77 %0:_(s64) = COPY $d078 %1:_(s32) = COPY $w079 %2:_(s32) = G_CONSTANT i32 -580 %3:_(s64) = nnan ninf nsz arcp contract afn reassoc G_FPOWI %0, %2(s32)81 $d0 = COPY %3(s64)82...83 84---85name: fpowi_s32_negative86body: |87 bb.0:88 liveins: $d0, $w089 90 ; CHECK-LABEL: name: fpowi_s32_negative91 ; CHECK: liveins: $d0, $w092 ; CHECK-NEXT: {{ $}}93 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $s094 ; CHECK-NEXT: [[FMUL:%[0-9]+]]:_(s32) = G_FMUL [[COPY]], [[COPY]]95 ; CHECK-NEXT: [[FMUL1:%[0-9]+]]:_(s32) = G_FMUL [[FMUL]], [[FMUL]]96 ; CHECK-NEXT: [[FMUL2:%[0-9]+]]:_(s32) = G_FMUL [[COPY]], [[FMUL1]]97 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_FCONSTANT float 1.000000e+0098 ; CHECK-NEXT: [[FDIV:%[0-9]+]]:_(s32) = nnan ninf nsz arcp contract afn reassoc G_FDIV [[C]], [[FMUL2]]99 ; CHECK-NEXT: $s0 = COPY [[FDIV]](s32)100 %0:_(s32) = COPY $s0101 %1:_(s32) = COPY $w0102 %2:_(s32) = G_CONSTANT i32 -5103 %3:_(s32) = nnan ninf nsz arcp contract afn reassoc G_FPOWI %0, %2(s32)104 $s0 = COPY %3(s32)105...106 107---108name: fpowi_libcall109body: |110 bb.0:111 liveins: $d0, $w0112 113 ; CHECK-LABEL: name: fpowi_libcall114 ; CHECK: liveins: $d0, $w0115 ; CHECK-NEXT: {{ $}}116 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $d0117 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $w0118 ; CHECK-NEXT: [[FPOWI:%[0-9]+]]:_(s64) = nnan ninf nsz arcp contract afn reassoc G_FPOWI [[COPY]], [[COPY1]](s32)119 ; CHECK-NEXT: $d0 = COPY [[FPOWI]](s64)120 %0:_(s64) = COPY $d0121 %1:_(s32) = COPY $w0122 %2:_(s64) = nnan ninf nsz arcp contract afn reassoc G_FPOWI %0, %1(s32)123 $d0 = COPY %2(s64)124...125