| ; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 5 | |
| ; RUN: opt -S --passes=slp-vectorizer -mtriple=aarch64-unknown-linux-gnu < %s -mcpu=neoverse-512tvb | FileCheck %s | |
| define i32 @test(ptr %0, i64 %1) vscale_range(2,2) { | |
| ; CHECK-LABEL: define i32 @test( | |
| ; CHECK-SAME: ptr [[TMP0:%.*]], i64 [[TMP1:%.*]]) #[[ATTR0:[0-9]+]] { | |
| ; CHECK-NEXT: [[ENTRY:.*:]] | |
| ; CHECK-NEXT: br label %[[FOR_BODY48:.*]] | |
| ; CHECK: [[FOR_BODY48]]: | |
| ; CHECK-NEXT: [[TMP2:%.*]] = getelementptr float, ptr [[TMP0]], i64 [[TMP1]] | |
| ; CHECK-NEXT: [[ARRAYIDX52:%.*]] = getelementptr i8, ptr [[TMP2]], i64 8 | |
| ; CHECK-NEXT: [[TMP3:%.*]] = load float, ptr [[ARRAYIDX52]], align 4 | |
| ; CHECK-NEXT: [[TMP4:%.*]] = load float, ptr [[TMP2]], align 4 | |
| ; CHECK-NEXT: [[ADD56:%.*]] = fadd float [[TMP3]], [[TMP4]] | |
| ; CHECK-NEXT: store float [[ADD56]], ptr [[TMP0]], align 4 | |
| ; CHECK-NEXT: br label %[[FOR_BODY48]] | |
| ; | |
| entry: | |
| br label %for.body48 | |
| for.body48: | |
| %2 = getelementptr float, ptr %0, i64 %1 | |
| %arrayidx52 = getelementptr i8, ptr %2, i64 8 | |
| %3 = load float, ptr %arrayidx52, align 4 | |
| %4 = load float, ptr %2, align 4 | |
| %add56 = fadd float %3, %4 | |
| store float %add56, ptr %0, align 4 | |
| br label %for.body48 | |
| } |