; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
; RUN: opt < %s -passes=slp-vectorizer -S -mtriple=x86_64-unknown-linux-gnu -mcpu=corei7-avx | FileCheck %s

define void @julia_2xdouble(ptr sret([2 x double]), ptr, ptr, ptr) {
; CHECK-LABEL: @julia_2xdouble(
; CHECK-NEXT:  top:
; CHECK-NEXT:    [[TMP5:%.*]] = load <2 x double>, ptr [[TMP2:%.*]], align 4
; CHECK-NEXT:    [[TMP7:%.*]] = load <2 x double>, ptr [[TMP3:%.*]], align 4
; CHECK-NEXT:    [[TMP8:%.*]] = fmul <2 x double> [[TMP5]], [[TMP7]]
; CHECK-NEXT:    [[TMP10:%.*]] = load <2 x double>, ptr [[TMP1:%.*]], align 4
; CHECK-NEXT:    [[TMP11:%.*]] = fadd <2 x double> [[TMP8]], [[TMP10]]
; CHECK-NEXT:    [[TMP12:%.*]] = extractelement <2 x double> [[TMP11]], i32 0
; CHECK-NEXT:    [[I0:%.*]] = insertvalue [2 x double] undef, double [[TMP12]], 0
; CHECK-NEXT:    [[TMP13:%.*]] = extractelement <2 x double> [[TMP11]], i32 1
; CHECK-NEXT:    [[I1:%.*]] = insertvalue [2 x double] [[I0]], double [[TMP13]], 1
; CHECK-NEXT:    store [2 x double] [[I1]], ptr [[TMP0:%.*]], align 4
; CHECK-NEXT:    ret void
;
top:
  %x0 = load double, ptr %2, align 4
  %y0 = load double, ptr %3, align 4
  %m0 = fmul double %x0, %y0
  %px1 = getelementptr inbounds [2 x double], ptr %2, i64 0, i64 1
  %x1 = load double, ptr %px1, align 4
  %py1 = getelementptr inbounds [2 x double], ptr %3, i64 0, i64 1
  %y1 = load double, ptr %py1, align 4
  %m1 = fmul double %x1, %y1
  %z0 = load double, ptr %1, align 4
  %a0 = fadd double %m0, %z0
  %i0 = insertvalue [2 x double] undef, double %a0, 0
  %pz1 = getelementptr inbounds [2 x double], ptr %1, i64 0, i64 1
  %z1 = load double, ptr %pz1, align 4
  %a1 = fadd double %m1, %z1
  %i1 = insertvalue [2 x double] %i0, double %a1, 1
  store [2 x double] %i1, ptr %0, align 4
  ret void
}

define void @julia_4xfloat(ptr sret([4 x float]), ptr, ptr, ptr) {
; CHECK-LABEL: @julia_4xfloat(
; CHECK-NEXT:  top:
; CHECK-NEXT:    [[TMP5:%.*]] = load <4 x float>, ptr [[TMP2:%.*]], align 4
; CHECK-NEXT:    [[TMP7:%.*]] = load <4 x float>, ptr [[TMP3:%.*]], align 4
; CHECK-NEXT:    [[TMP8:%.*]] = fmul <4 x float> [[TMP5]], [[TMP7]]
; CHECK-NEXT:    [[TMP10:%.*]] = load <4 x float>, ptr [[TMP1:%.*]], align 4
; CHECK-NEXT:    [[TMP11:%.*]] = fadd <4 x float> [[TMP8]], [[TMP10]]
; CHECK-NEXT:    [[TMP12:%.*]] = extractelement <4 x float> [[TMP11]], i32 0
; CHECK-NEXT:    [[I0:%.*]] = insertvalue [4 x float] undef, float [[TMP12]], 0
; CHECK-NEXT:    [[TMP13:%.*]] = extractelement <4 x float> [[TMP11]], i32 1
; CHECK-NEXT:    [[I1:%.*]] = insertvalue [4 x float] [[I0]], float [[TMP13]], 1
; CHECK-NEXT:    [[TMP14:%.*]] = extractelement <4 x float> [[TMP11]], i32 2
; CHECK-NEXT:    [[I2:%.*]] = insertvalue [4 x float] [[I1]], float [[TMP14]], 2
; CHECK-NEXT:    [[TMP15:%.*]] = extractelement <4 x float> [[TMP11]], i32 3
; CHECK-NEXT:    [[I3:%.*]] = insertvalue [4 x float] [[I2]], float [[TMP15]], 3
; CHECK-NEXT:    store [4 x float] [[I3]], ptr [[TMP0:%.*]], align 4
; CHECK-NEXT:    ret void
;
top:
  %x0 = load float, ptr %2, align 4
  %y0 = load float, ptr %3, align 4
  %m0 = fmul float %x0, %y0
  %px1 = getelementptr inbounds [4 x float], ptr %2, i64 0, i64 1
  %x1 = load float, ptr %px1, align 4
  %py1 = getelementptr inbounds [4 x float], ptr %3, i64 0, i64 1
  %y1 = load float, ptr %py1, align 4
  %m1 = fmul float %x1, %y1
  %px2 = getelementptr inbounds [4 x float], ptr %2, i64 0, i64 2
  %x2 = load float, ptr %px2, align 4
  %py2 = getelementptr inbounds [4 x float], ptr %3, i64 0, i64 2
  %y2 = load float, ptr %py2, align 4
  %m2 = fmul float %x2, %y2
  %px3 = getelementptr inbounds [4 x float], ptr %2, i64 0, i64 3
  %x3 = load float, ptr %px3, align 4
  %py3 = getelementptr inbounds [4 x float], ptr %3, i64 0, i64 3
  %y3 = load float, ptr %py3, align 4
  %m3 = fmul float %x3, %y3
  %z0 = load float, ptr %1, align 4
  %a0 = fadd float %m0, %z0
  %i0 = insertvalue [4 x float] undef, float %a0, 0
  %pz1 = getelementptr inbounds [4 x float], ptr %1, i64 0, i64 1
  %z1 = load float, ptr %pz1, align 4
  %a1 = fadd float %m1, %z1
  %i1 = insertvalue [4 x float] %i0, float %a1, 1
  %pz2 = getelementptr inbounds [4 x float], ptr %1, i64 0, i64 2
  %z2 = load float, ptr %pz2, align 4
  %a2 = fadd float %m2, %z2
  %i2 = insertvalue [4 x float] %i1, float %a2, 2
  %pz3 = getelementptr inbounds [4 x float], ptr %1, i64 0, i64 3
  %z3 = load float, ptr %pz3, align 4
  %a3 = fadd float %m3, %z3
  %i3 = insertvalue [4 x float] %i2, float %a3, 3
  store [4 x float] %i3, ptr %0, align 4
  ret void
}

define void @julia_load_array_of_float(ptr %a, ptr %b, ptr %c) {
; CHECK-LABEL: @julia_load_array_of_float(
; CHECK-NEXT:  top:
; CHECK-NEXT:    [[TMP1:%.*]] = load <4 x float>, ptr [[A:%.*]], align 4
; CHECK-NEXT:    [[TMP3:%.*]] = load <4 x float>, ptr [[B:%.*]], align 4
; CHECK-NEXT:    [[TMP4:%.*]] = fsub <4 x float> [[TMP1]], [[TMP3]]
; CHECK-NEXT:    [[TMP5:%.*]] = extractelement <4 x float> [[TMP4]], i32 0
; CHECK-NEXT:    [[C_ARR0:%.*]] = insertvalue [4 x float] undef, float [[TMP5]], 0
; CHECK-NEXT:    [[TMP6:%.*]] = extractelement <4 x float> [[TMP4]], i32 1
; CHECK-NEXT:    [[C_ARR1:%.*]] = insertvalue [4 x float] [[C_ARR0]], float [[TMP6]], 1
; CHECK-NEXT:    [[TMP7:%.*]] = extractelement <4 x float> [[TMP4]], i32 2
; CHECK-NEXT:    [[C_ARR2:%.*]] = insertvalue [4 x float] [[C_ARR1]], float [[TMP7]], 2
; CHECK-NEXT:    [[TMP8:%.*]] = extractelement <4 x float> [[TMP4]], i32 3
; CHECK-NEXT:    [[C_ARR3:%.*]] = insertvalue [4 x float] [[C_ARR2]], float [[TMP8]], 3
; CHECK-NEXT:    store [4 x float] [[C_ARR3]], ptr [[C:%.*]], align 4
; CHECK-NEXT:    ret void
;
top:
  %a_arr = load [4 x float], ptr %a, align 4
  %a0 = extractvalue [4 x float] %a_arr, 0
  %a2 = extractvalue [4 x float] %a_arr, 2
  %a1 = extractvalue [4 x float] %a_arr, 1
  %b_arr = load [4 x float], ptr %b, align 4
  %b0 = extractvalue [4 x float] %b_arr, 0
  %b2 = extractvalue [4 x float] %b_arr, 2
  %b1 = extractvalue [4 x float] %b_arr, 1
  %a3 = extractvalue [4 x float] %a_arr, 3
  %c1 = fsub float %a1, %b1
  %b3 = extractvalue [4 x float] %b_arr, 3
  %c0 = fsub float %a0, %b0
  %c2 = fsub float %a2, %b2
  %c_arr0 = insertvalue [4 x float] undef, float %c0, 0
  %c_arr1 = insertvalue [4 x float] %c_arr0, float %c1, 1
  %c3 = fsub float %a3, %b3
  %c_arr2 = insertvalue [4 x float] %c_arr1, float %c2, 2
  %c_arr3 = insertvalue [4 x float] %c_arr2, float %c3, 3
  store [4 x float] %c_arr3, ptr %c, align 4
  ret void
}

define void @julia_load_array_of_i32(ptr %a, ptr %b, ptr %c) {
; CHECK-LABEL: @julia_load_array_of_i32(
; CHECK-NEXT:  top:
; CHECK-NEXT:    [[TMP1:%.*]] = load <4 x i32>, ptr [[A:%.*]], align 4
; CHECK-NEXT:    [[TMP3:%.*]] = load <4 x i32>, ptr [[B:%.*]], align 4
; CHECK-NEXT:    [[TMP4:%.*]] = sub <4 x i32> [[TMP1]], [[TMP3]]
; CHECK-NEXT:    [[TMP5:%.*]] = extractelement <4 x i32> [[TMP4]], i32 0
; CHECK-NEXT:    [[C_ARR0:%.*]] = insertvalue [4 x i32] undef, i32 [[TMP5]], 0
; CHECK-NEXT:    [[TMP6:%.*]] = extractelement <4 x i32> [[TMP4]], i32 1
; CHECK-NEXT:    [[C_ARR1:%.*]] = insertvalue [4 x i32] [[C_ARR0]], i32 [[TMP6]], 1
; CHECK-NEXT:    [[TMP7:%.*]] = extractelement <4 x i32> [[TMP4]], i32 2
; CHECK-NEXT:    [[C_ARR2:%.*]] = insertvalue [4 x i32] [[C_ARR1]], i32 [[TMP7]], 2
; CHECK-NEXT:    [[TMP8:%.*]] = extractelement <4 x i32> [[TMP4]], i32 3
; CHECK-NEXT:    [[C_ARR3:%.*]] = insertvalue [4 x i32] [[C_ARR2]], i32 [[TMP8]], 3
; CHECK-NEXT:    store [4 x i32] [[C_ARR3]], ptr [[C:%.*]], align 4
; CHECK-NEXT:    ret void
;
top:
  %a_arr = load [4 x i32], ptr %a, align 4
  %a0 = extractvalue [4 x i32] %a_arr, 0
  %a2 = extractvalue [4 x i32] %a_arr, 2
  %a1 = extractvalue [4 x i32] %a_arr, 1
  %b_arr = load [4 x i32], ptr %b, align 4
  %b0 = extractvalue [4 x i32] %b_arr, 0
  %b2 = extractvalue [4 x i32] %b_arr, 2
  %b1 = extractvalue [4 x i32] %b_arr, 1
  %a3 = extractvalue [4 x i32] %a_arr, 3
  %c1 = sub i32 %a1, %b1
  %b3 = extractvalue [4 x i32] %b_arr, 3
  %c0 = sub i32 %a0, %b0
  %c2 = sub i32 %a2, %b2
  %c_arr0 = insertvalue [4 x i32] undef, i32 %c0, 0
  %c_arr1 = insertvalue [4 x i32] %c_arr0, i32 %c1, 1
  %c3 = sub i32 %a3, %b3
  %c_arr2 = insertvalue [4 x i32] %c_arr1, i32 %c2, 2
  %c_arr3 = insertvalue [4 x i32] %c_arr2, i32 %c3, 3
  store [4 x i32] %c_arr3, ptr %c, align 4
  ret void
}

; Almost identical to previous test, but for type that should NOT be vectorized.
;
define void @julia_load_array_of_i16(ptr %a, ptr %b, ptr %c) {
; CHECK-LABEL: @julia_load_array_of_i16(
; CHECK-NEXT:  top:
; CHECK-NEXT:    [[A_ARR:%.*]] = load [4 x i16], ptr [[A:%.*]], align 4
; CHECK-NEXT:    [[A0:%.*]] = extractvalue [4 x i16] [[A_ARR]], 0
; CHECK-NEXT:    [[A2:%.*]] = extractvalue [4 x i16] [[A_ARR]], 2
; CHECK-NEXT:    [[A1:%.*]] = extractvalue [4 x i16] [[A_ARR]], 1
; CHECK-NEXT:    [[B_ARR:%.*]] = load [4 x i16], ptr [[B:%.*]], align 4
; CHECK-NEXT:    [[B0:%.*]] = extractvalue [4 x i16] [[B_ARR]], 0
; CHECK-NEXT:    [[B2:%.*]] = extractvalue [4 x i16] [[B_ARR]], 2
; CHECK-NEXT:    [[B1:%.*]] = extractvalue [4 x i16] [[B_ARR]], 1
; CHECK-NEXT:    [[A3:%.*]] = extractvalue [4 x i16] [[A_ARR]], 3
; CHECK-NEXT:    [[C1:%.*]] = sub i16 [[A1]], [[B1]]
; CHECK-NEXT:    [[B3:%.*]] = extractvalue [4 x i16] [[B_ARR]], 3
; CHECK-NEXT:    [[C0:%.*]] = sub i16 [[A0]], [[B0]]
; CHECK-NEXT:    [[C2:%.*]] = sub i16 [[A2]], [[B2]]
; CHECK-NEXT:    [[C_ARR0:%.*]] = insertvalue [4 x i16] undef, i16 [[C0]], 0
; CHECK-NEXT:    [[C_ARR1:%.*]] = insertvalue [4 x i16] [[C_ARR0]], i16 [[C1]], 1
; CHECK-NEXT:    [[C3:%.*]] = sub i16 [[A3]], [[B3]]
; CHECK-NEXT:    [[C_ARR2:%.*]] = insertvalue [4 x i16] [[C_ARR1]], i16 [[C2]], 2
; CHECK-NEXT:    [[C_ARR3:%.*]] = insertvalue [4 x i16] [[C_ARR2]], i16 [[C3]], 3
; CHECK-NEXT:    store [4 x i16] [[C_ARR3]], ptr [[C:%.*]], align 4
; CHECK-NEXT:    ret void
;
top:
  %a_arr = load [4 x i16], ptr %a, align 4
  %a0 = extractvalue [4 x i16] %a_arr, 0
  %a2 = extractvalue [4 x i16] %a_arr, 2
  %a1 = extractvalue [4 x i16] %a_arr, 1
  %b_arr = load [4 x i16], ptr %b, align 4
  %b0 = extractvalue [4 x i16] %b_arr, 0
  %b2 = extractvalue [4 x i16] %b_arr, 2
  %b1 = extractvalue [4 x i16] %b_arr, 1
  %a3 = extractvalue [4 x i16] %a_arr, 3
  %c1 = sub i16 %a1, %b1
  %b3 = extractvalue [4 x i16] %b_arr, 3
  %c0 = sub i16 %a0, %b0
  %c2 = sub i16 %a2, %b2
  %c_arr0 = insertvalue [4 x i16] undef, i16 %c0, 0
  %c_arr1 = insertvalue [4 x i16] %c_arr0, i16 %c1, 1
  %c3 = sub i16 %a3, %b3
  %c_arr2 = insertvalue [4 x i16] %c_arr1, i16 %c2, 2
  %c_arr3 = insertvalue [4 x i16] %c_arr2, i16 %c3, 3
  store [4 x i16] %c_arr3, ptr %c, align 4
  ret void
}

%pseudovec = type { float, float, float, float }

define void @julia_load_struct_of_float(ptr %a, ptr %b, ptr %c) {
; CHECK-LABEL: @julia_load_struct_of_float(
; CHECK-NEXT:  top:
; CHECK-NEXT:    [[TMP1:%.*]] = load <4 x float>, ptr [[A:%.*]], align 4
; CHECK-NEXT:    [[TMP3:%.*]] = load <4 x float>, ptr [[B:%.*]], align 4
; CHECK-NEXT:    [[TMP4:%.*]] = fsub <4 x float> [[TMP1]], [[TMP3]]
; CHECK-NEXT:    [[TMP5:%.*]] = extractelement <4 x float> [[TMP4]], i32 0
; CHECK-NEXT:    [[C_STRUCT0:%.*]] = insertvalue [[PSEUDOVEC:%.*]] undef, float [[TMP5]], 0
; CHECK-NEXT:    [[TMP6:%.*]] = extractelement <4 x float> [[TMP4]], i32 1
; CHECK-NEXT:    [[C_STRUCT1:%.*]] = insertvalue [[PSEUDOVEC]] [[C_STRUCT0]], float [[TMP6]], 1
; CHECK-NEXT:    [[TMP7:%.*]] = extractelement <4 x float> [[TMP4]], i32 2
; CHECK-NEXT:    [[C_STRUCT2:%.*]] = insertvalue [[PSEUDOVEC]] [[C_STRUCT1]], float [[TMP7]], 2
; CHECK-NEXT:    [[TMP8:%.*]] = extractelement <4 x float> [[TMP4]], i32 3
; CHECK-NEXT:    [[C_STRUCT3:%.*]] = insertvalue [[PSEUDOVEC]] [[C_STRUCT2]], float [[TMP8]], 3
; CHECK-NEXT:    store [[PSEUDOVEC]] [[C_STRUCT3]], ptr [[C:%.*]], align 4
; CHECK-NEXT:    ret void
;
top:
  %a_struct = load %pseudovec, ptr %a, align 4
  %a0 = extractvalue %pseudovec %a_struct, 0
  %a1 = extractvalue %pseudovec %a_struct, 1
  %b_struct = load %pseudovec, ptr %b, align 4
  %a2 = extractvalue %pseudovec %a_struct, 2
  %b0 = extractvalue %pseudovec %b_struct, 0
  %a3 = extractvalue %pseudovec %a_struct, 3
  %c0 = fsub float %a0, %b0
  %b1 = extractvalue %pseudovec %b_struct, 1
  %b2 = extractvalue %pseudovec %b_struct, 2
  %c1 = fsub float %a1, %b1
  %c_struct0 = insertvalue %pseudovec undef, float %c0, 0
  %b3 = extractvalue %pseudovec %b_struct, 3
  %c3 = fsub float %a3, %b3
  %c_struct1 = insertvalue %pseudovec %c_struct0, float %c1, 1
  %c2 = fsub float %a2, %b2
  %c_struct2 = insertvalue %pseudovec %c_struct1, float %c2, 2
  %c_struct3 = insertvalue %pseudovec %c_struct2, float %c3, 3
  store %pseudovec %c_struct3, ptr %c, align 4
  ret void
}
