brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.3 KiB · d7d1458 Raw
34 lines · plain
1! RUN: %flang_fc1 -emit-llvm %s -fno-ppc-native-vector-element-order -triple ppc64le-unknown-linux -o - | FileCheck --check-prefixes="LLVMIR" %s2! REQUIRES: target=powerpc{{.*}}3 4!CHECK-LABEL: vec_extract_testr4i85subroutine vec_extract_testr4i8(arg1, arg2, r)6  vector(real(4)) :: arg17  real(4) :: r8  integer(8) :: arg29  r = vec_extract(arg1, arg2)10 11! LLVMIR: %[[arg1:.*]] = load <4 x float>, ptr %{{[0-9]}}, align 1612! LLVMIR: %[[arg2:.*]] = load i64, ptr %{{[0-9]}}, align 813! LLVMIR: %[[urem:.*]] = urem i64 %[[arg2]], 414! LLVMIR: %[[sub:.*]] = sub i64 3, %[[urem]]15! LLVMIR: %[[r:.*]] = extractelement <4 x float> %[[arg1]], i64 %[[sub]]16! LLVMIR: store float %[[r]], ptr %{{[0-9]}}, align 417end subroutine vec_extract_testr4i818 19!CHECK-LABEL: vec_extract_testi8i120subroutine vec_extract_testi8i1(arg1, arg2, r)21  vector(integer(8)) :: arg122  integer(8) :: r23  integer(1) :: arg224  r = vec_extract(arg1, arg2)25 26! LLVMIR: %[[arg1:.*]] = load <2 x i64>, ptr %{{[0-9]}}, align 1627! LLVMIR: %[[arg2:.*]] = load i8, ptr %{{[0-9]}}, align 128! LLVMIR: %[[urem:.*]] = urem i8 %[[arg2]], 229! LLVMIR: %[[sub:.*]] = sub i8 1, %[[urem]]30! LLVMIR: %[[idx:.*]] = zext i8 %[[sub]] to i6431! LLVMIR: %[[r:.*]] = extractelement <2 x i64> %[[arg1]], i64 %[[idx]]32! LLVMIR: store i64 %[[r]], ptr %{{[0-9]}}, align 833end subroutine vec_extract_testi8i134