brintos

brintos / llvm-project-archived public Read only

0
0
Text · 5.4 KiB · 42538d5 Raw
173 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -mtriple aarch64-unknown-unknown -verify-machineinstrs -run-pass=legalizer %s -o - | FileCheck %s --check-prefix=NO-FP163# RUN: llc -mtriple aarch64-unknown-unknown -verify-machineinstrs -mattr=+fullfp16 -run-pass=legalizer %s -o - | FileCheck %s --check-prefix=FP164 5...6---7name:            fadd8tracksRegLiveness: true9body:             |10  bb.0:11    liveins: $h0, $h112 13    ; NO-FP16-LABEL: name: fadd14    ; NO-FP16: liveins: $h0, $h115    ; NO-FP16-NEXT: {{  $}}16    ; NO-FP16-NEXT: %x:_(s16) = COPY $h017    ; NO-FP16-NEXT: %y:_(s16) = COPY $h118    ; NO-FP16-NEXT: [[FPEXT:%[0-9]+]]:_(s32) = G_FPEXT %x(s16)19    ; NO-FP16-NEXT: [[FPEXT1:%[0-9]+]]:_(s32) = G_FPEXT %y(s16)20    ; NO-FP16-NEXT: [[FADD:%[0-9]+]]:_(s32) = G_FADD [[FPEXT]], [[FPEXT1]]21    ; NO-FP16-NEXT: %op:_(s16) = G_FPTRUNC [[FADD]](s32)22    ; NO-FP16-NEXT: $h0 = COPY %op(s16)23    ; NO-FP16-NEXT: RET_ReallyLR implicit $h024    ;25    ; FP16-LABEL: name: fadd26    ; FP16: liveins: $h0, $h127    ; FP16-NEXT: {{  $}}28    ; FP16-NEXT: %x:_(s16) = COPY $h029    ; FP16-NEXT: %y:_(s16) = COPY $h130    ; FP16-NEXT: %op:_(s16) = G_FADD %x, %y31    ; FP16-NEXT: $h0 = COPY %op(s16)32    ; FP16-NEXT: RET_ReallyLR implicit $h033    %x:_(s16) = COPY $h034    %y:_(s16) = COPY $h135    %op:_(s16) = G_FADD %x, %y36    $h0 = COPY %op(s16)37    RET_ReallyLR implicit $h038 39...40---41name:            fsub42tracksRegLiveness: true43body:             |44  bb.0:45    liveins: $h0, $h146 47    ; NO-FP16-LABEL: name: fsub48    ; NO-FP16: liveins: $h0, $h149    ; NO-FP16-NEXT: {{  $}}50    ; NO-FP16-NEXT: %x:_(s16) = COPY $h051    ; NO-FP16-NEXT: %y:_(s16) = COPY $h152    ; NO-FP16-NEXT: [[FPEXT:%[0-9]+]]:_(s32) = G_FPEXT %x(s16)53    ; NO-FP16-NEXT: [[FPEXT1:%[0-9]+]]:_(s32) = G_FPEXT %y(s16)54    ; NO-FP16-NEXT: [[FSUB:%[0-9]+]]:_(s32) = G_FSUB [[FPEXT]], [[FPEXT1]]55    ; NO-FP16-NEXT: %op:_(s16) = G_FPTRUNC [[FSUB]](s32)56    ; NO-FP16-NEXT: $h0 = COPY %op(s16)57    ; NO-FP16-NEXT: RET_ReallyLR implicit $h058    ;59    ; FP16-LABEL: name: fsub60    ; FP16: liveins: $h0, $h161    ; FP16-NEXT: {{  $}}62    ; FP16-NEXT: %x:_(s16) = COPY $h063    ; FP16-NEXT: %y:_(s16) = COPY $h164    ; FP16-NEXT: %op:_(s16) = G_FSUB %x, %y65    ; FP16-NEXT: $h0 = COPY %op(s16)66    ; FP16-NEXT: RET_ReallyLR implicit $h067    %x:_(s16) = COPY $h068    %y:_(s16) = COPY $h169    %op:_(s16) = G_FSUB %x, %y70    $h0 = COPY %op(s16)71    RET_ReallyLR implicit $h072 73...74---75name:            fmul76tracksRegLiveness: true77body:             |78  bb.0:79    liveins: $h0, $h180 81    ; NO-FP16-LABEL: name: fmul82    ; NO-FP16: liveins: $h0, $h183    ; NO-FP16-NEXT: {{  $}}84    ; NO-FP16-NEXT: %x:_(s16) = COPY $h085    ; NO-FP16-NEXT: %y:_(s16) = COPY $h186    ; NO-FP16-NEXT: [[FPEXT:%[0-9]+]]:_(s32) = G_FPEXT %x(s16)87    ; NO-FP16-NEXT: [[FPEXT1:%[0-9]+]]:_(s32) = G_FPEXT %y(s16)88    ; NO-FP16-NEXT: [[FMUL:%[0-9]+]]:_(s32) = G_FMUL [[FPEXT]], [[FPEXT1]]89    ; NO-FP16-NEXT: %op:_(s16) = G_FPTRUNC [[FMUL]](s32)90    ; NO-FP16-NEXT: $h0 = COPY %op(s16)91    ; NO-FP16-NEXT: RET_ReallyLR implicit $h092    ;93    ; FP16-LABEL: name: fmul94    ; FP16: liveins: $h0, $h195    ; FP16-NEXT: {{  $}}96    ; FP16-NEXT: %x:_(s16) = COPY $h097    ; FP16-NEXT: %y:_(s16) = COPY $h198    ; FP16-NEXT: %op:_(s16) = G_FMUL %x, %y99    ; FP16-NEXT: $h0 = COPY %op(s16)100    ; FP16-NEXT: RET_ReallyLR implicit $h0101    %x:_(s16) = COPY $h0102    %y:_(s16) = COPY $h1103    %op:_(s16) = G_FMUL %x, %y104    $h0 = COPY %op(s16)105    RET_ReallyLR implicit $h0106 107...108---109name:            fdiv110tracksRegLiveness: true111body:             |112  bb.0:113    liveins: $h0, $h1114 115    ; NO-FP16-LABEL: name: fdiv116    ; NO-FP16: liveins: $h0, $h1117    ; NO-FP16-NEXT: {{  $}}118    ; NO-FP16-NEXT: %x:_(s16) = COPY $h0119    ; NO-FP16-NEXT: %y:_(s16) = COPY $h1120    ; NO-FP16-NEXT: [[FPEXT:%[0-9]+]]:_(s32) = G_FPEXT %x(s16)121    ; NO-FP16-NEXT: [[FPEXT1:%[0-9]+]]:_(s32) = G_FPEXT %y(s16)122    ; NO-FP16-NEXT: [[FDIV:%[0-9]+]]:_(s32) = G_FDIV [[FPEXT]], [[FPEXT1]]123    ; NO-FP16-NEXT: %op:_(s16) = G_FPTRUNC [[FDIV]](s32)124    ; NO-FP16-NEXT: $h0 = COPY %op(s16)125    ; NO-FP16-NEXT: RET_ReallyLR implicit $h0126    ;127    ; FP16-LABEL: name: fdiv128    ; FP16: liveins: $h0, $h1129    ; FP16-NEXT: {{  $}}130    ; FP16-NEXT: %x:_(s16) = COPY $h0131    ; FP16-NEXT: %y:_(s16) = COPY $h1132    ; FP16-NEXT: %op:_(s16) = G_FDIV %x, %y133    ; FP16-NEXT: $h0 = COPY %op(s16)134    ; FP16-NEXT: RET_ReallyLR implicit $h0135    %x:_(s16) = COPY $h0136    %y:_(s16) = COPY $h1137    %op:_(s16) = G_FDIV %x, %y138    $h0 = COPY %op(s16)139    RET_ReallyLR implicit $h0140 141...142---143name:            fneg144tracksRegLiveness: true145body:             |146  bb.0:147    liveins: $h0148 149    ; NO-FP16-LABEL: name: fneg150    ; NO-FP16: liveins: $h0151    ; NO-FP16-NEXT: {{  $}}152    ; NO-FP16-NEXT: %x:_(s16) = COPY $h0153    ; NO-FP16-NEXT: [[ANYEXT:%[0-9]+]]:_(s32) = G_ANYEXT %x(s16)154    ; NO-FP16-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 -32768155    ; NO-FP16-NEXT: [[XOR:%[0-9]+]]:_(s32) = G_XOR [[ANYEXT]], [[C]]156    ; NO-FP16-NEXT: %op:_(s16) = G_TRUNC [[XOR]](s32)157    ; NO-FP16-NEXT: $h0 = COPY %op(s16)158    ; NO-FP16-NEXT: RET_ReallyLR implicit $h0159    ;160    ; FP16-LABEL: name: fneg161    ; FP16: liveins: $h0162    ; FP16-NEXT: {{  $}}163    ; FP16-NEXT: %x:_(s16) = COPY $h0164    ; FP16-NEXT: %op:_(s16) = G_FNEG %x165    ; FP16-NEXT: $h0 = COPY %op(s16)166    ; FP16-NEXT: RET_ReallyLR implicit $h0167    %x:_(s16) = COPY $h0168    %op:_(s16) = G_FNEG %x169    $h0 = COPY %op(s16)170    RET_ReallyLR implicit $h0171 172...173