1; RUN: llc -mtriple=arm-eabi -mattr=+neon %s -o - | FileCheck %s 2 3; This test checks that when inserting one (integer) element into a vector, 4; the vector is not spuriously copied. "vorr dX, dY, dY" is the way of moving 5; one DPR to another that we check for. 6 7; CHECK: @f 8; CHECK-NOT: vorr d 9; CHECK: vmov.32 d 10; CHECK-NOT: vorr d 11; CHECK: mov pc, lr 12define <4 x i32> @f(<4 x i32> %in) { 13 %1 = insertelement <4 x i32> %in, i32 255, i32 3 14 ret <4 x i32> %1 15} 16 17; CHECK: @g 18; CHECK-NOT: vorr d 19; CHECK: vmov.16 d 20; CHECK-NOT: vorr d 21; CHECK: mov pc, lr 22define <8 x i16> @g(<8 x i16> %in) { 23 %1 = insertelement <8 x i16> %in, i16 255, i32 7 24 ret <8 x i16> %1 25} 26 27; CHECK: @h 28; CHECK-NOT: vorr d 29; CHECK: vmov.8 d 30; CHECK-NOT: vorr d 31; CHECK: mov pc, lr 32define <16 x i8> @h(<16 x i8> %in) { 33 %1 = insertelement <16 x i8> %in, i8 255, i32 15 34 ret <16 x i8> %1 35} 36