xref: /llvm-project/llvm/test/CodeGen/AArch64/GlobalISel/insert-vector-elt-pr63826.ll (revision eaf23b2480a1c892d86abb7c911d86687a7cfe72)
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2; RUN: llc < %s -o - -verify-machineinstrs -global-isel=1 -global-isel-abort=1 | FileCheck %s --check-prefixes=CHECK
3; RUN: llc < %s -o - -verify-machineinstrs -global-isel=0 | FileCheck %s --check-prefixes=CHECK
4
5target datalayout = "e-m:o-i64:64-i128:128-n32:64-S128"
6target triple = "arm64-apple-ios14.5.0"
7
8define <2 x i16> @pr63826_v2s16(<2 x i16> %vec) {
9; CHECK-LABEL: pr63826_v2s16:
10; CHECK:       ; %bb.0:
11; CHECK-NEXT:    ; kill: def $d0 killed $d0 def $q0
12; CHECK-NEXT:    mov w8, #1 ; =0x1
13; CHECK-NEXT:    mov.s v0[0], w8
14; CHECK-NEXT:    ; kill: def $d0 killed $d0 killed $q0
15; CHECK-NEXT:    ret
16  %vec1 = insertelement <2 x i16> %vec, i16 1, i32 0
17  ret <2 x i16> %vec1
18}
19
20define <2 x i8> @pr63826_v2s8(<2 x i8> %vec) {
21; CHECK-LABEL: pr63826_v2s8:
22; CHECK:       ; %bb.0:
23; CHECK-NEXT:    ; kill: def $d0 killed $d0 def $q0
24; CHECK-NEXT:    mov w8, #1 ; =0x1
25; CHECK-NEXT:    mov.s v0[0], w8
26; CHECK-NEXT:    ; kill: def $d0 killed $d0 killed $q0
27; CHECK-NEXT:    ret
28  %vec1 = insertelement <2 x i8> %vec, i8 1, i32 0
29  ret <2 x i8> %vec1
30}
31
32define <4 x i8> @pr63826_v4s8(<4 x i8> %vec) {
33; CHECK-LABEL: pr63826_v4s8:
34; CHECK:       ; %bb.0:
35; CHECK-NEXT:    ; kill: def $d0 killed $d0 def $q0
36; CHECK-NEXT:    mov w8, #1 ; =0x1
37; CHECK-NEXT:    mov.h v0[0], w8
38; CHECK-NEXT:    ; kill: def $d0 killed $d0 killed $q0
39; CHECK-NEXT:    ret
40  %vec1 = insertelement <4 x i8> %vec, i8 1, i32 0
41  ret <4 x i8> %vec1
42}
43