| ; 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 |
| } |