1*7258735fSSaleem Abdulrasool; RUN: llc -mtriple=arm-eabi -mattr=+neon %s -o - | FileCheck %s 234e9931bSJames Molloy 334e9931bSJames Molloy; This test checks that when inserting one (integer) element into a vector, 434e9931bSJames Molloy; the vector is not spuriously copied. "vorr dX, dY, dY" is the way of moving 534e9931bSJames Molloy; one DPR to another that we check for. 634e9931bSJames Molloy 734e9931bSJames Molloy; CHECK: @f 834e9931bSJames Molloy; CHECK-NOT: vorr d 91f06e7f0SJakob Stoklund Olesen; CHECK: vmov.32 d 1034e9931bSJames Molloy; CHECK-NOT: vorr d 1134e9931bSJames Molloy; CHECK: mov pc, lr 1234e9931bSJames Molloydefine <4 x i32> @f(<4 x i32> %in) { 1334e9931bSJames Molloy %1 = insertelement <4 x i32> %in, i32 255, i32 3 1434e9931bSJames Molloy ret <4 x i32> %1 1534e9931bSJames Molloy} 1634e9931bSJames Molloy 1734e9931bSJames Molloy; CHECK: @g 1834e9931bSJames Molloy; CHECK-NOT: vorr d 1934e9931bSJames Molloy; CHECK: vmov.16 d 2034e9931bSJames Molloy; CHECK-NOT: vorr d 2134e9931bSJames Molloy; CHECK: mov pc, lr 2234e9931bSJames Molloydefine <8 x i16> @g(<8 x i16> %in) { 2334e9931bSJames Molloy %1 = insertelement <8 x i16> %in, i16 255, i32 7 2434e9931bSJames Molloy ret <8 x i16> %1 2534e9931bSJames Molloy} 2634e9931bSJames Molloy 2734e9931bSJames Molloy; CHECK: @h 2834e9931bSJames Molloy; CHECK-NOT: vorr d 2934e9931bSJames Molloy; CHECK: vmov.8 d 3034e9931bSJames Molloy; CHECK-NOT: vorr d 3134e9931bSJames Molloy; CHECK: mov pc, lr 3234e9931bSJames Molloydefine <16 x i8> @h(<16 x i8> %in) { 3334e9931bSJames Molloy %1 = insertelement <16 x i8> %in, i8 255, i32 15 3434e9931bSJames Molloy ret <16 x i8> %1 3534e9931bSJames Molloy} 36