69 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py UTC_ARGS: --version 22# RUN: llc -mtriple=arm64-unknown-unknown -global-isel -O0 -mattr=-fullfp16 -run-pass=legalizer %s -o - | FileCheck %s3 4--- |5 define <8 x half> @test_v8f16.sqrt(<8 x half> %a) {6 ret <8 x half> %a7 }8 9 define <4 x half> @test_v4f16.sqrt(<4 x half> %a) {10 ret <4 x half> %a11 }12 13...14---15name: test_v8f16.sqrt16alignment: 417tracksRegLiveness: true18registers:19 - { id: 0, class: _ }20 - { id: 1, class: _ }21body: |22 bb.1 (%ir-block.0):23 liveins: $q024 ; CHECK-LABEL: name: test_v8f16.sqrt25 ; CHECK: liveins: $q026 ; CHECK-NEXT: {{ $}}27 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<8 x s16>) = COPY $q028 ; CHECK-NEXT: [[UV:%[0-9]+]]:_(<4 x s16>), [[UV1:%[0-9]+]]:_(<4 x s16>) = G_UNMERGE_VALUES [[COPY]](<8 x s16>)29 ; CHECK-NEXT: [[FPEXT:%[0-9]+]]:_(<4 x s32>) = G_FPEXT [[UV]](<4 x s16>)30 ; CHECK-NEXT: [[FPEXT1:%[0-9]+]]:_(<4 x s32>) = G_FPEXT [[UV1]](<4 x s16>)31 ; CHECK-NEXT: [[FSQRT:%[0-9]+]]:_(<4 x s32>) = G_FSQRT [[FPEXT]]32 ; CHECK-NEXT: [[FSQRT1:%[0-9]+]]:_(<4 x s32>) = G_FSQRT [[FPEXT1]]33 ; CHECK-NEXT: [[FPTRUNC:%[0-9]+]]:_(<4 x s16>) = G_FPTRUNC [[FSQRT]](<4 x s32>)34 ; CHECK-NEXT: [[FPTRUNC1:%[0-9]+]]:_(<4 x s16>) = G_FPTRUNC [[FSQRT1]](<4 x s32>)35 ; CHECK-NEXT: [[CONCAT_VECTORS:%[0-9]+]]:_(<8 x s16>) = G_CONCAT_VECTORS [[FPTRUNC]](<4 x s16>), [[FPTRUNC1]](<4 x s16>)36 ; CHECK-NEXT: $q0 = COPY [[CONCAT_VECTORS]](<8 x s16>)37 ; CHECK-NEXT: RET_ReallyLR implicit $q038 %0:_(<8 x s16>) = COPY $q039 %1:_(<8 x s16>) = G_FSQRT %040 $q0 = COPY %1(<8 x s16>)41 RET_ReallyLR implicit $q042 43...44---45name: test_v4f16.sqrt46alignment: 447tracksRegLiveness: true48registers:49 - { id: 0, class: _ }50 - { id: 1, class: _ }51body: |52 bb.1 (%ir-block.0):53 liveins: $d054 ; CHECK-LABEL: name: test_v4f16.sqrt55 ; CHECK: liveins: $d056 ; CHECK-NEXT: {{ $}}57 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<4 x s16>) = COPY $d058 ; CHECK-NEXT: [[FPEXT:%[0-9]+]]:_(<4 x s32>) = G_FPEXT [[COPY]](<4 x s16>)59 ; CHECK-NEXT: [[FSQRT:%[0-9]+]]:_(<4 x s32>) = G_FSQRT [[FPEXT]]60 ; CHECK-NEXT: [[FPTRUNC:%[0-9]+]]:_(<4 x s16>) = G_FPTRUNC [[FSQRT]](<4 x s32>)61 ; CHECK-NEXT: $d0 = COPY [[FPTRUNC]](<4 x s16>)62 ; CHECK-NEXT: RET_ReallyLR implicit $d063 %0:_(<4 x s16>) = COPY $d064 %1:_(<4 x s16>) = G_FSQRT %065 $d0 = COPY %1(<4 x s16>)66 RET_ReallyLR implicit $d067 68...69