1*9880d681SAndroid Build Coastguard Worker; RUN: llc < %s -mtriple=x86_64-linux -mattr=-avx | FileCheck %s -check-prefix=X64 2*9880d681SAndroid Build Coastguard Worker; X64-NOT: movsq 3*9880d681SAndroid Build Coastguard Worker; X64: rep 4*9880d681SAndroid Build Coastguard Worker; X64-NOT: rep 5*9880d681SAndroid Build Coastguard Worker; X64: movsq 6*9880d681SAndroid Build Coastguard Worker; X64-NOT: movsq 7*9880d681SAndroid Build Coastguard Worker; X64: rep 8*9880d681SAndroid Build Coastguard Worker; X64-NOT: rep 9*9880d681SAndroid Build Coastguard Worker; X64: movsq 10*9880d681SAndroid Build Coastguard Worker; X64-NOT: rep 11*9880d681SAndroid Build Coastguard Worker; X64-NOT: movsq 12*9880d681SAndroid Build Coastguard Worker 13*9880d681SAndroid Build Coastguard Worker; Win64 has not supported byval yet. 14*9880d681SAndroid Build Coastguard Worker 15*9880d681SAndroid Build Coastguard Worker; RUN: llc < %s -march=x86 -mattr=-avx | FileCheck %s -check-prefix=X32 16*9880d681SAndroid Build Coastguard Worker; X32-NOT: movsl 17*9880d681SAndroid Build Coastguard Worker; X32: rep 18*9880d681SAndroid Build Coastguard Worker; X32-NOT: rep 19*9880d681SAndroid Build Coastguard Worker; X32: movsl 20*9880d681SAndroid Build Coastguard Worker; X32-NOT: movsl 21*9880d681SAndroid Build Coastguard Worker; X32: rep 22*9880d681SAndroid Build Coastguard Worker; X32-NOT: rep 23*9880d681SAndroid Build Coastguard Worker; X32: movsl 24*9880d681SAndroid Build Coastguard Worker; X32-NOT: rep 25*9880d681SAndroid Build Coastguard Worker; X32-NOT: movsl 26*9880d681SAndroid Build Coastguard Worker 27*9880d681SAndroid Build Coastguard Worker%struct.s = type { i16, i16, i16, i16, i16, i16, i16, i16, 28*9880d681SAndroid Build Coastguard Worker i16, i16, i16, i16, i16, i16, i16, i16, 29*9880d681SAndroid Build Coastguard Worker i16, i16, i16, i16, i16, i16, i16, i16, 30*9880d681SAndroid Build Coastguard Worker i16, i16, i16, i16, i16, i16, i16, i16, 31*9880d681SAndroid Build Coastguard Worker i16, i16, i16, i16, i16, i16, i16, i16, 32*9880d681SAndroid Build Coastguard Worker i16, i16, i16, i16, i16, i16, i16, i16, 33*9880d681SAndroid Build Coastguard Worker i16, i16, i16, i16, i16, i16, i16, i16, 34*9880d681SAndroid Build Coastguard Worker i16, i16, i16, i16, i16, i16, i16, i16, 35*9880d681SAndroid Build Coastguard Worker i16 } 36*9880d681SAndroid Build Coastguard Worker 37*9880d681SAndroid Build Coastguard Worker 38*9880d681SAndroid Build Coastguard Workerdefine void @g(i16 signext %a1, i16 signext %a2, i16 signext %a3, 39*9880d681SAndroid Build Coastguard Worker i16 signext %a4, i16 signext %a5, i16 signext %a6) nounwind { 40*9880d681SAndroid Build Coastguard Workerentry: 41*9880d681SAndroid Build Coastguard Worker %a = alloca %struct.s, align 16 42*9880d681SAndroid Build Coastguard Worker %tmp = getelementptr %struct.s, %struct.s* %a, i32 0, i32 0 43*9880d681SAndroid Build Coastguard Worker store i16 %a1, i16* %tmp, align 16 44*9880d681SAndroid Build Coastguard Worker %tmp2 = getelementptr %struct.s, %struct.s* %a, i32 0, i32 1 45*9880d681SAndroid Build Coastguard Worker store i16 %a2, i16* %tmp2, align 16 46*9880d681SAndroid Build Coastguard Worker %tmp4 = getelementptr %struct.s, %struct.s* %a, i32 0, i32 2 47*9880d681SAndroid Build Coastguard Worker store i16 %a3, i16* %tmp4, align 16 48*9880d681SAndroid Build Coastguard Worker %tmp6 = getelementptr %struct.s, %struct.s* %a, i32 0, i32 3 49*9880d681SAndroid Build Coastguard Worker store i16 %a4, i16* %tmp6, align 16 50*9880d681SAndroid Build Coastguard Worker %tmp8 = getelementptr %struct.s, %struct.s* %a, i32 0, i32 4 51*9880d681SAndroid Build Coastguard Worker store i16 %a5, i16* %tmp8, align 16 52*9880d681SAndroid Build Coastguard Worker %tmp10 = getelementptr %struct.s, %struct.s* %a, i32 0, i32 5 53*9880d681SAndroid Build Coastguard Worker store i16 %a6, i16* %tmp10, align 16 54*9880d681SAndroid Build Coastguard Worker call void @f( %struct.s* byval %a ) 55*9880d681SAndroid Build Coastguard Worker call void @f( %struct.s* byval %a ) 56*9880d681SAndroid Build Coastguard Worker ret void 57*9880d681SAndroid Build Coastguard Worker} 58*9880d681SAndroid Build Coastguard Worker 59*9880d681SAndroid Build Coastguard Workerdeclare void @f(%struct.s* byval) 60