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 { i8, i8, i8, i8, i8, i8, i8, i8, 28*9880d681SAndroid Build Coastguard Worker i8, i8, i8, i8, i8, i8, i8, i8, 29*9880d681SAndroid Build Coastguard Worker i8, i8, i8, i8, i8, i8, i8, i8, 30*9880d681SAndroid Build Coastguard Worker i8, i8, i8, i8, i8, i8, i8, i8, 31*9880d681SAndroid Build Coastguard Worker i8, i8, i8, i8, i8, i8, i8, i8, 32*9880d681SAndroid Build Coastguard Worker i8, i8, i8, i8, i8, i8, i8, i8, 33*9880d681SAndroid Build Coastguard Worker i8, i8, i8, i8, i8, i8, i8, i8, 34*9880d681SAndroid Build Coastguard Worker i8, i8, i8, i8, i8, i8, i8, i8, 35*9880d681SAndroid Build Coastguard Worker i8, i8, i8, i8, i8, i8, i8, i8, 36*9880d681SAndroid Build Coastguard Worker i8, i8, i8, i8, i8, i8, i8, i8, 37*9880d681SAndroid Build Coastguard Worker i8, i8, i8, i8, i8, i8, i8, i8, 38*9880d681SAndroid Build Coastguard Worker i8, i8, i8, i8, i8, i8, i8, i8, 39*9880d681SAndroid Build Coastguard Worker i8, i8, i8, i8, i8, i8, i8, i8, 40*9880d681SAndroid Build Coastguard Worker i8, i8, i8, i8, i8, i8, i8, i8, 41*9880d681SAndroid Build Coastguard Worker i8, i8, i8, i8, i8, i8, i8, i8, 42*9880d681SAndroid Build Coastguard Worker i8, i8, i8, i8, i8, i8, i8, i8, 43*9880d681SAndroid Build Coastguard Worker i8 } 44*9880d681SAndroid Build Coastguard Worker 45*9880d681SAndroid Build Coastguard Worker 46*9880d681SAndroid Build Coastguard Workerdefine void @g(i8 signext %a1, i8 signext %a2, i8 signext %a3, 47*9880d681SAndroid Build Coastguard Worker i8 signext %a4, i8 signext %a5, i8 signext %a6) { 48*9880d681SAndroid Build Coastguard Workerentry: 49*9880d681SAndroid Build Coastguard Worker %a = alloca %struct.s 50*9880d681SAndroid Build Coastguard Worker %tmp = getelementptr %struct.s, %struct.s* %a, i32 0, i32 0 51*9880d681SAndroid Build Coastguard Worker store i8 %a1, i8* %tmp, align 8 52*9880d681SAndroid Build Coastguard Worker %tmp2 = getelementptr %struct.s, %struct.s* %a, i32 0, i32 1 53*9880d681SAndroid Build Coastguard Worker store i8 %a2, i8* %tmp2, align 8 54*9880d681SAndroid Build Coastguard Worker %tmp4 = getelementptr %struct.s, %struct.s* %a, i32 0, i32 2 55*9880d681SAndroid Build Coastguard Worker store i8 %a3, i8* %tmp4, align 8 56*9880d681SAndroid Build Coastguard Worker %tmp6 = getelementptr %struct.s, %struct.s* %a, i32 0, i32 3 57*9880d681SAndroid Build Coastguard Worker store i8 %a4, i8* %tmp6, align 8 58*9880d681SAndroid Build Coastguard Worker %tmp8 = getelementptr %struct.s, %struct.s* %a, i32 0, i32 4 59*9880d681SAndroid Build Coastguard Worker store i8 %a5, i8* %tmp8, align 8 60*9880d681SAndroid Build Coastguard Worker %tmp10 = getelementptr %struct.s, %struct.s* %a, i32 0, i32 5 61*9880d681SAndroid Build Coastguard Worker store i8 %a6, i8* %tmp10, align 8 62*9880d681SAndroid Build Coastguard Worker call void @f( %struct.s* byval %a ) 63*9880d681SAndroid Build Coastguard Worker call void @f( %struct.s* byval %a ) 64*9880d681SAndroid Build Coastguard Worker ret void 65*9880d681SAndroid Build Coastguard Worker} 66*9880d681SAndroid Build Coastguard Worker 67*9880d681SAndroid Build Coastguard Workerdeclare void @f(%struct.s* byval) 68