; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 5
; RUN: opt -S --passes=slp-vectorizer -mtriple=aarch64  < %s | FileCheck %s

define void @test() {
; CHECK-LABEL: define void @test() {
; CHECK-NEXT:  [[ENTRY:.*]]:
; CHECK-NEXT:    [[TMP0:%.*]] = load <2 x i32>, ptr null, align 1
; CHECK-NEXT:    br label %[[IF_END:.*]]
; CHECK:       [[IF_THEN:.*]]:
; CHECK-NEXT:    br label %[[IF_END]]
; CHECK:       [[IF_END]]:
; CHECK-NEXT:    [[TMP1:%.*]] = phi <2 x i32> [ [[TMP0]], %[[ENTRY]] ], [ poison, %[[IF_THEN]] ]
; CHECK-NEXT:    [[TMP2:%.*]] = extractelement <2 x i32> [[TMP1]], i32 0
; CHECK-NEXT:    store i32 [[TMP2]], ptr null, align 1
; CHECK-NEXT:    br label %[[TRAP:.*]]
; CHECK:       [[BB3:.*:]]
; CHECK-NEXT:    [[TMP4:%.*]] = extractelement <2 x i32> [[TMP1]], i32 1
; CHECK-NEXT:    store i32 [[TMP4]], ptr null, align 1
; CHECK-NEXT:    ret void
; CHECK:       [[TRAP]]:
; CHECK-NEXT:    unreachable
;
entry:
  %g_2197.real32.pre = load i32, ptr null, align 1
  %g_2197.imag33.pre = load i32, ptr getelementptr inbounds nuw ({ i32, i32 }, ptr null, i32 0, i32 1), align 1
  br label %if.end

if.then:
  br label %if.end

if.end:
  %g_2197.imag33 = phi i32 [ %g_2197.imag33.pre, %entry ], [ 0, %if.then ]
  %g_2197.real32 = phi i32 [ %g_2197.real32.pre, %entry ], [ 0, %if.then ]
  store i32 %g_2197.real32, ptr  null, align 1
  br label %trap

0:
  store i32 %g_2197.imag33, ptr  null, align 1
  ret void

trap:
  unreachable
}
