brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.8 KiB · e075e92 Raw
57 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py2; RUN: opt -S < %s -passes=slp-vectorizer -slp-max-reg-size=128 -slp-min-reg-size=128 | FileCheck %s3 4declare void @llvm.sideeffect()5 6; SLP vectorization across a @llvm.sideeffect.7 8define void @test_sideeffect(ptr %p) {9; CHECK-LABEL: @test_sideeffect(10; CHECK-NEXT:    call void @llvm.sideeffect()11; CHECK-NEXT:    call void @llvm.sideeffect()12; CHECK-NEXT:    [[TMP2:%.*]] = load <4 x float>, ptr [[P:%.*]], align 413; CHECK-NEXT:    store <4 x float> [[TMP2]], ptr [[P]], align 414; CHECK-NEXT:    ret void15;16  %p1 = getelementptr float, ptr %p, i64 117  %p2 = getelementptr float, ptr %p, i64 218  %p3 = getelementptr float, ptr %p, i64 319  %l0 = load float, ptr %p20  %l1 = load float, ptr %p121  %l2 = load float, ptr %p222  call void @llvm.sideeffect()23  %l3 = load float, ptr %p324  store float %l0, ptr %p25  call void @llvm.sideeffect()26  store float %l1, ptr %p127  store float %l2, ptr %p228  store float %l3, ptr %p329  ret void30}31 32declare void @foo()33 34define void @test_inaccessiblememonly(ptr %p) {35; CHECK-LABEL: @test_inaccessiblememonly(36; CHECK-NEXT:    call void @foo() #[[ATTR1:[0-9]+]]37; CHECK-NEXT:    call void @foo() #[[ATTR1]]38; CHECK-NEXT:    [[TMP2:%.*]] = load <4 x float>, ptr [[P:%.*]], align 439; CHECK-NEXT:    store <4 x float> [[TMP2]], ptr [[P]], align 440; CHECK-NEXT:    ret void41;42  %p1 = getelementptr float, ptr %p, i64 143  %p2 = getelementptr float, ptr %p, i64 244  %p3 = getelementptr float, ptr %p, i64 345  %l0 = load float, ptr %p46  %l1 = load float, ptr %p147  %l2 = load float, ptr %p248  call void @foo() inaccessiblememonly49  %l3 = load float, ptr %p350  store float %l0, ptr %p51  call void @foo() inaccessiblememonly52  store float %l1, ptr %p153  store float %l2, ptr %p254  store float %l3, ptr %p355  ret void56}57