; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 5
; RUN: opt -passes=sandbox-vectorizer -sbvec-vec-reg-bits=1024 -sbvec-allow-non-pow2 -sbvec-passes="seed-collection<tr-save,bottom-up-vec,tr-accept>" %s -S | FileCheck %s

define void @pack_constants(ptr %ptr) {
; CHECK-LABEL: define void @pack_constants(
; CHECK-SAME: ptr [[PTR:%.*]]) {
; CHECK-NEXT:    [[PTR0:%.*]] = getelementptr i8, ptr [[PTR]], i32 0
; CHECK-NEXT:    store <2 x i8> <i8 0, i8 1>, ptr [[PTR0]], align 1
; CHECK-NEXT:    ret void
;
  %ptr0 = getelementptr i8, ptr %ptr, i32 0
  %ptr1 = getelementptr i8, ptr %ptr, i32 1
  store i8 0, ptr %ptr0
  store i8 1, ptr %ptr1
  ret void
}

; Make sure we don't generate bad IR when packing PHIs.
; NOTE: This test may become obsolete once we start vectorizing PHIs.
define void @packPHIs(ptr %ptr) {
; CHECK-LABEL: define void @packPHIs(
; CHECK-SAME: ptr [[PTR:%.*]]) {
; CHECK-NEXT:  [[ENTRY:.*]]:
; CHECK-NEXT:    br label %[[LOOP:.*]]
; CHECK:       [[LOOP]]:
; CHECK-NEXT:    [[PHI0:%.*]] = phi i8 [ 0, %[[ENTRY]] ], [ 1, %[[LOOP]] ]
; CHECK-NEXT:    [[PHI1:%.*]] = phi i8 [ 0, %[[ENTRY]] ], [ 1, %[[LOOP]] ]
; CHECK-NEXT:    [[PHI2:%.*]] = phi i8 [ 0, %[[ENTRY]] ], [ 1, %[[LOOP]] ]
; CHECK-NEXT:    [[PHI3:%.*]] = phi i8 [ 0, %[[ENTRY]] ], [ 1, %[[LOOP]] ]
; CHECK-NEXT:    [[PACK:%.*]] = insertelement <2 x i8> poison, i8 [[PHI0]], i32 0
; CHECK-NEXT:    [[PACK1:%.*]] = insertelement <2 x i8> [[PACK]], i8 [[PHI1]], i32 1
; CHECK-NEXT:    [[GEP0:%.*]] = getelementptr i8, ptr [[PTR]], i64 0
; CHECK-NEXT:    store <2 x i8> [[PACK1]], ptr [[GEP0]], align 1
; CHECK-NEXT:    br label %[[LOOP]]
; CHECK:       [[EXIT:.*:]]
; CHECK-NEXT:    ret void
;
entry:
  br label %loop

loop:
  %phi0 = phi i8 [0, %entry], [1, %loop]
  %phi1 = phi i8 [0, %entry], [1, %loop]
  %phi2 = phi i8 [0, %entry], [1, %loop]
  %phi3 = phi i8 [0, %entry], [1, %loop]
  %gep0 = getelementptr i8, ptr %ptr, i64 0
  %gep1 = getelementptr i8, ptr %ptr, i64 1
  store i8 %phi0, ptr %gep0
  store i8 %phi1, ptr %gep1
  br label %loop

exit:
  ret void
}

define void @packFromOtherBB(ptr %ptr, i8 %val) {
; CHECK-LABEL: define void @packFromOtherBB(
; CHECK-SAME: ptr [[PTR:%.*]], i8 [[VAL:%.*]]) {
; CHECK-NEXT:  [[ENTRY:.*]]:
; CHECK-NEXT:    [[ADD0:%.*]] = add i8 [[VAL]], 0
; CHECK-NEXT:    [[MUL1:%.*]] = mul i8 [[VAL]], 1
; CHECK-NEXT:    br label %[[LOOP:.*]]
; CHECK:       [[LOOP]]:
; CHECK-NEXT:    [[PHI0:%.*]] = phi i8 [ 0, %[[ENTRY]] ], [ 1, %[[LOOP]] ]
; CHECK-NEXT:    [[PHI1:%.*]] = phi i8 [ 0, %[[ENTRY]] ], [ 1, %[[LOOP]] ]
; CHECK-NEXT:    [[PACK:%.*]] = insertelement <2 x i8> poison, i8 [[ADD0]], i32 0
; CHECK-NEXT:    [[PACK1:%.*]] = insertelement <2 x i8> [[PACK]], i8 [[MUL1]], i32 1
; CHECK-NEXT:    [[GEP0:%.*]] = getelementptr i8, ptr [[PTR]], i64 0
; CHECK-NEXT:    store <2 x i8> [[PACK1]], ptr [[GEP0]], align 1
; CHECK-NEXT:    br label %[[LOOP]]
; CHECK:       [[EXIT:.*:]]
; CHECK-NEXT:    ret void
;
entry:
  %add0 = add i8 %val, 0
  %mul1 = mul i8 %val, 1
  br label %loop

loop:
  %phi0 = phi i8 [0, %entry], [1, %loop]
  %phi1 = phi i8 [0, %entry], [1, %loop]
  %gep0 = getelementptr i8, ptr %ptr, i64 0
  %gep1 = getelementptr i8, ptr %ptr, i64 1
  store i8 %add0, ptr %gep0
  store i8 %mul1, ptr %gep1
  br label %loop

exit:
  ret void
}

define void @packFromDiffBBs(ptr %ptr, i8 %v) {
; CHECK-LABEL: define void @packFromDiffBBs(
; CHECK-SAME: ptr [[PTR:%.*]], i8 [[V:%.*]]) {
; CHECK-NEXT:  [[ENTRY:.*:]]
; CHECK-NEXT:    [[ADD0:%.*]] = add i8 [[V]], 1
; CHECK-NEXT:    br label %[[BB:.*]]
; CHECK:       [[BB]]:
; CHECK-NEXT:    [[ADD1:%.*]] = add i8 [[V]], 2
; CHECK-NEXT:    [[PACK:%.*]] = insertelement <2 x i8> poison, i8 [[ADD0]], i32 0
; CHECK-NEXT:    [[PACK1:%.*]] = insertelement <2 x i8> [[PACK]], i8 [[ADD1]], i32 1
; CHECK-NEXT:    [[GEP0:%.*]] = getelementptr i8, ptr [[PTR]], i64 0
; CHECK-NEXT:    store <2 x i8> [[PACK1]], ptr [[GEP0]], align 1
; CHECK-NEXT:    ret void
;
entry:
  %add0 = add i8 %v, 1
  br label %bb

bb:
  %add1 = add i8 %v, 2
  %gep0 = getelementptr i8, ptr %ptr, i64 0
  %gep1 = getelementptr i8, ptr %ptr, i64 1
  store i8 %add0, ptr %gep0
  store i8 %add1, ptr %gep1
  ret void
}
