blob: aeb82d800a2f7703568a649dad86f20d5486b708 [file]
; 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
}