1 ; RUN: llc < %s -march=arm64 -aarch64-neon-syntax=apple | FileCheck %s 2 3 define zeroext i8 @f1(<16 x i8> %a) { 4 ; CHECK-LABEL: f1: 5 ; CHECK: mov.b w0, v0[3] 6 ; CHECK-NEXT: ret 7 %vecext = extractelement <16 x i8> %a, i32 3 8 ret i8 %vecext 9 } 10 11 define zeroext i16 @f2(<4 x i16> %a) { 12 ; CHECK-LABEL: f2: 13 ; CHECK: mov.h w0, v0[2] 14 ; CHECK-NEXT: ret 15 %vecext = extractelement <4 x i16> %a, i32 2 16 ret i16 %vecext 17 } 18 19 define i32 @f3(<2 x i32> %a) { 20 ; CHECK-LABEL: f3: 21 ; CHECK: mov.s w0, v0[1] 22 ; CHECK-NEXT: ret 23 %vecext = extractelement <2 x i32> %a, i32 1 24 ret i32 %vecext 25 } 26 27 define i64 @f4(<2 x i64> %a) { 28 ; CHECK-LABEL: f4: 29 ; CHECK: mov.d x0, v0[1] 30 ; CHECK-NEXT: ret 31 %vecext = extractelement <2 x i64> %a, i32 1 32 ret i64 %vecext 33 } 34