blob: b82e817e3ee74ac9c268ef8be06903490b853eb3 [file] [log] [blame]
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 5
; RUN: opt -S --passes=slp-vectorizer -mtriple=x86_64-unknown-linux-gnu -mcpu=znver1 < %s | FileCheck %s
@mbc_dbl = common global [16 x i8] zeroinitializer, align 8
@foo_int = common global [16 x i8] zeroinitializer, align 8
@foo_ptr = common local_unnamed_addr global [640 x i8] zeroinitializer, align 8
define void @test() {
; CHECK-LABEL: define void @test(
; CHECK-SAME: ) #[[ATTR0:[0-9]+]] {
; CHECK-NEXT: [[TMP1:%.*]] = load i64, ptr getelementptr inbounds nuw (i8, ptr @foo_ptr, i64 64), align 8
; CHECK-NEXT: [[TMP2:%.*]] = getelementptr i64, ptr @foo_int, i64 [[TMP1]]
; CHECK-NEXT: [[TMP3:%.*]] = load i64, ptr getelementptr inbounds nuw (i8, ptr @foo_ptr, i64 80), align 8
; CHECK-NEXT: [[TMP4:%.*]] = getelementptr i64, ptr @foo_int, i64 [[TMP3]]
; CHECK-NEXT: [[TMP5:%.*]] = load i64, ptr getelementptr inbounds nuw (i8, ptr @foo_ptr, i64 192), align 8
; CHECK-NEXT: [[TMP6:%.*]] = getelementptr double, ptr @mbc_dbl, i64 [[TMP5]]
; CHECK-NEXT: [[TMP7:%.*]] = load i64, ptr getelementptr inbounds nuw (i8, ptr @foo_ptr, i64 128), align 8
; CHECK-NEXT: [[TMP8:%.*]] = getelementptr double, ptr @mbc_dbl, i64 [[TMP7]]
; CHECK-NEXT: [[TMP9:%.*]] = load i64, ptr getelementptr inbounds nuw (i8, ptr @foo_ptr, i64 144), align 8
; CHECK-NEXT: [[TMP10:%.*]] = getelementptr double, ptr @mbc_dbl, i64 [[TMP9]]
; CHECK-NEXT: [[TMP11:%.*]] = load i64, ptr getelementptr inbounds nuw (i8, ptr @foo_ptr, i64 208), align 8
; CHECK-NEXT: [[TMP12:%.*]] = getelementptr double, ptr @mbc_dbl, i64 [[TMP11]]
; CHECK-NEXT: ret void
;
%165 = load i64, ptr getelementptr inbounds nuw (i8, ptr @foo_ptr, i64 64), align 8
%166 = getelementptr i64, ptr @foo_int, i64 %165
%168 = load i64, ptr getelementptr inbounds nuw (i8, ptr @foo_ptr, i64 80), align 8
%169 = getelementptr i64, ptr @foo_int, i64 %168
%171 = load i64, ptr getelementptr inbounds nuw (i8, ptr @foo_ptr, i64 192), align 8
%172 = getelementptr double, ptr @mbc_dbl, i64 %171
%174 = load i64, ptr getelementptr inbounds nuw (i8, ptr @foo_ptr, i64 128), align 8
%175 = getelementptr double, ptr @mbc_dbl, i64 %174
%177 = load i64, ptr getelementptr inbounds nuw (i8, ptr @foo_ptr, i64 144), align 8
%178 = getelementptr double, ptr @mbc_dbl, i64 %177
%180 = load i64, ptr getelementptr inbounds nuw (i8, ptr @foo_ptr, i64 208), align 8
%181 = getelementptr double, ptr @mbc_dbl, i64 %180
ret void
}