87 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc -mtriple=thumbv8.1m.main-none-none-eabi -mattr=+mve -verify-machineinstrs %s -o - | FileCheck %s3 4define arm_aapcs_vfpcc i32 @u8_explicit_extend(<16 x i8> %a) {5; CHECK-LABEL: u8_explicit_extend:6; CHECK: @ %bb.0: @ %entry7; CHECK-NEXT: vmov.u8 r0, q0[10]8; CHECK-NEXT: bx lr9entry:10 %0 = extractelement <16 x i8> %a, i32 1011 %1 = zext i8 %0 to i3212 ret i32 %113}14 15define arm_aapcs_vfpcc i32 @s8_explicit_extend(<16 x i8> %a) {16; CHECK-LABEL: s8_explicit_extend:17; CHECK: @ %bb.0: @ %entry18; CHECK-NEXT: vmov.s8 r0, q0[10]19; CHECK-NEXT: bx lr20entry:21 %0 = extractelement <16 x i8> %a, i32 1022 %1 = sext i8 %0 to i3223 ret i32 %124}25 26define arm_aapcs_vfpcc i8 @u8_extend_via_pcs(<16 x i8> %a) {27; CHECK-LABEL: u8_extend_via_pcs:28; CHECK: @ %bb.0: @ %entry29; CHECK-NEXT: vmov.u8 r0, q0[10]30; CHECK-NEXT: bx lr31entry:32 %0 = extractelement <16 x i8> %a, i32 1033 ret i8 %034}35 36define arm_aapcs_vfpcc signext i8 @s8_extend_via_pcs(<16 x i8> %a) {37; CHECK-LABEL: s8_extend_via_pcs:38; CHECK: @ %bb.0: @ %entry39; CHECK-NEXT: vmov.s8 r0, q0[10]40; CHECK-NEXT: bx lr41entry:42 %0 = extractelement <16 x i8> %a, i32 1043 ret i8 %044}45 46define arm_aapcs_vfpcc i32 @u16_explicit_extend(<8 x i16> %a) {47; CHECK-LABEL: u16_explicit_extend:48; CHECK: @ %bb.0: @ %entry49; CHECK-NEXT: vmov.u16 r0, q0[5]50; CHECK-NEXT: bx lr51entry:52 %0 = extractelement <8 x i16> %a, i32 553 %1 = zext i16 %0 to i3254 ret i32 %155}56 57define arm_aapcs_vfpcc i32 @s16_explicit_extend(<8 x i16> %a) {58; CHECK-LABEL: s16_explicit_extend:59; CHECK: @ %bb.0: @ %entry60; CHECK-NEXT: vmov.s16 r0, q0[5]61; CHECK-NEXT: bx lr62entry:63 %0 = extractelement <8 x i16> %a, i32 564 %1 = sext i16 %0 to i3265 ret i32 %166}67 68define arm_aapcs_vfpcc i16 @u16_extend_via_pcs(<8 x i16> %a) {69; CHECK-LABEL: u16_extend_via_pcs:70; CHECK: @ %bb.0: @ %entry71; CHECK-NEXT: vmov.u16 r0, q0[5]72; CHECK-NEXT: bx lr73entry:74 %0 = extractelement <8 x i16> %a, i32 575 ret i16 %076}77 78define arm_aapcs_vfpcc signext i16 @s16_extend_via_pcs(<8 x i16> %a) {79; CHECK-LABEL: s16_extend_via_pcs:80; CHECK: @ %bb.0: @ %entry81; CHECK-NEXT: vmov.s16 r0, q0[5]82; CHECK-NEXT: bx lr83entry:84 %0 = extractelement <8 x i16> %a, i32 585 ret i16 %086}87