brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.1 KiB · f6eddf0 Raw
68 lines · plain
1; RUN: not opt -S -passes=verify < %s 2>&1 | FileCheck %s2 3; Reject a vector reduction with a non-vector argument.4 5define float @reduce_vector_not_vec_arg(float %x) {6; CHECK: Intrinsic has incorrect argument type!7  %r0 = call float @llvm.vector.reduce.fmax.f32(float %x)8  ret float %r09}10 11define i32 @reduce_vector_not_vec_arg2(i32 %x) {12; CHECK: Intrinsic has incorrect argument type!13  %r0 = call i32 @llvm.vector.reduce.smax.i32(i32 %x)14  ret i32 %r015}16 17; Type mismatch for start value.18 19define float @fadd_match_arg_types(<4 x float> %x) {20; CHECK: Intrinsic has incorrect argument type!21  %r = call float @llvm.vector.reduce.fadd.v4f32(double 0.0, <4 x float> %x)22  ret float %r23}24 25; Wrong result type.26 27define i64 @result_too_wide(<4 x i32> %x) {28; CHECK: Intrinsic has incorrect return type!29  %r = call i64 @llvm.vector.reduce.add.v4i32(<4 x i32> %x)30  ret i64 %r31}32 33; We should have the appropriate (either int or FP) type of argument34; for any vector reduction.35 36define float @not_float_reduce(<4 x float> %x) {37; CHECK: Intrinsic has incorrect argument type!38  %r = call float @llvm.vector.reduce.umin.v4f32(<4 x float> %x)39  ret float %r40}41 42define ptr @not_pointer_reduce(<4 x ptr> %x) {43; CHECK: Intrinsic has incorrect argument type!44  %r = call ptr @llvm.vector.reduce.or.v4p0(<4 x ptr> %x)45  ret ptr %r46}47 48define i32 @not_integer_reduce(<4 x i32> %x) {49; CHECK: Intrinsic has incorrect argument type!50  %r = call i32 @llvm.vector.reduce.fadd.v4i32(i32 0, <4 x i32> %x)51  ret i32 %r52}53 54define ptr @not_pointer_reduce2(<4 x ptr> %x) {55; CHECK: Intrinsic has incorrect argument type!56  %r = call ptr @llvm.vector.reduce.fmin.v4p0(<4 x ptr> %x)57  ret ptr %r58}59 60declare float @llvm.vector.reduce.umin.v4f32(<4 x float>)61declare ptr @llvm.vector.reduce.or.v4p0(<4 x ptr>)62declare i32 @llvm.vector.reduce.fadd.v4i32(i32, <4 x i32>)63declare float @llvm.vector.reduce.fadd.v4f32(double, <4 x float>)64declare ptr @llvm.vector.reduce.fmin.v4p0(<4 x ptr>)65declare float @llvm.vector.reduce.fmax.f32(float)66declare i32 @llvm.vector.reduce.smax.i32(i32)67declare i64 @llvm.vector.reduce.add.v4i32(<4 x i32>)68