1- ; RUN: opt < %s -mattr=+sve -vector-library=ArmPL - passes=inject-tli-mappings,loop-vectorize -debug-only=loop-accesses -disable-output 2>&1 | FileCheck %s
1+ ; RUN: opt < %s -passes='print<access-info>' -debug-only=loop-accesses -disable-output 2>&1 | FileCheck %s
22
33; REQUIRES: asserts
44
5- target triple = "aarch64-unknown-linux-gnu"
6-
7- ; TODO: add mappings for frexp/frexpf
85
96define void @frexp_f64 (ptr %in , ptr %out1 , ptr %out2 , i32 %N ) {
7+ ; CHECK: LAA: Allow to vectorize math function with write-only attribute: %call = tail call double @frexp
108entry:
119 %cmp4 = icmp sgt i32 %N , 0
1210 br i1 %cmp4 , label %for.body.preheader , label %for.cond.cleanup
@@ -33,6 +31,7 @@ for.body:
3331declare double @frexp (double , ptr ) #1
3432
3533define void @frexp_f32 (ptr readonly %in , ptr %out1 , ptr %out2 , i32 %N ) {
34+ ; CHECK: LAA: Allow to vectorize math function with write-only attribute: %call = tail call float @frexpf
3635entry:
3736 %cmp4 = icmp sgt i32 %N , 0
3837 br i1 %cmp4 , label %for.body.preheader , label %for.cond.cleanup
@@ -59,7 +58,7 @@ for.body:
5958declare float @frexpf (float , ptr ) #1
6059
6160define void @modf_f64 (ptr %in , ptr %out1 , ptr %out2 , i32 %N ) {
62- ; CHECK: LAA: allow math function with write-only attribute: %call = tail call double @modf
61+ ; CHECK: LAA: Allow to vectorize math function with write-only attribute: %call = tail call double @modf
6362entry:
6463 %cmp7 = icmp sgt i32 %N , 0
6564 br i1 %cmp7 , label %for.body.preheader , label %for.cond.cleanup
@@ -87,7 +86,7 @@ for.body:
8786declare double @modf (double , ptr ) #1
8887
8988define void @modf_f32 (ptr %in , ptr %out1 , ptr %out2 , i32 %N ) {
90- ; CHECK: LAA: allow math function with write-only attribute: %call = tail call float @modff
89+ ; CHECK: LAA: Allow to vectorize math function with write-only attribute: %call = tail call float @modff
9190entry:
9291 %cmp7 = icmp sgt i32 %N , 0
9392 br i1 %cmp7 , label %for.body.preheader , label %for.cond.cleanup
0 commit comments