brintos

brintos / llvm-project-archived public Read only

0
0
Text · 3.9 KiB · 61a0d6d Raw
81 lines · plain
1; RUN: llc -O0 -mtriple=hexagon -mcpu=hexagonv60 -mattr=+hvxv60,hvx-length64b < %s | FileCheck %s2 3; CHECK: vmem4 5target triple = "hexagon"6 7@vecpreds = external global [15 x <16 x i32>], align 648@vectors = external global [15 x <16 x i32>], align 649@vector_pairs = external global [15 x <32 x i32>], align 12810@.str1 = external hidden unnamed_addr constant [20 x i8], align 111@.str2 = external hidden unnamed_addr constant [43 x i8], align 112@Q6VecPredResult = external global <16 x i32>, align 6413@.str52 = external hidden unnamed_addr constant [57 x i8], align 114@.str54 = external hidden unnamed_addr constant [59 x i8], align 115@VectorResult = external global <16 x i32>, align 6416@.str243 = external hidden unnamed_addr constant [60 x i8], align 117@.str251 = external hidden unnamed_addr constant [77 x i8], align 118@.str290 = external hidden unnamed_addr constant [65 x i8], align 119@VectorPairResult = external global <32 x i32>, align 12820 21; Function Attrs: nounwind22declare void @print_vector(i32, ptr) #023 24; Function Attrs: nounwind25declare i32 @printf(ptr, ...) #026 27; Function Attrs: nounwind28declare void @print_vecpred(i32, ptr) #029 30; Function Attrs: nounwind readnone31declare <16 x i32> @llvm.hexagon.V6.vandqrt(<64 x i1>, i32) #132 33; Function Attrs: nounwind34declare void @init_vectors() #035 36; Function Attrs: nounwind readnone37declare <64 x i1> @llvm.hexagon.V6.vandvrt(<16 x i32>, i32) #138 39; Function Attrs: nounwind readnone40declare <16 x i32> @llvm.hexagon.V6.lvsplatw(i32) #141 42; Function Attrs: nounwind43declare void @init_addresses() #044 45; Function Attrs: nounwind46declare <16 x i32> @llvm.hexagon.V6.vsubhnq(<64 x i1>, <16 x i32>, <16 x i32>) #147 48; Function Attrs: nounwind49define i32 @main() #0 {50entry:51  %0 = load <16 x i32>, ptr @vecpreds, align 6452  %1 = load <16 x i32>, ptr getelementptr inbounds ([15 x <16 x i32>], ptr @vectors, i32 0, i32 1), align 6453  call void @print_vecpred(i32 64, ptr @Q6VecPredResult)54  %2 = load <16 x i32>, ptr getelementptr inbounds ([15 x <16 x i32>], ptr @vectors, i32 0, i32 1), align 6455  %call50 = call i32 (ptr, ...) @printf(ptr @.str52) #356  %3 = load <16 x i32>, ptr getelementptr inbounds ([15 x <16 x i32>], ptr @vectors, i32 0, i32 1), align 6457  %call52 = call i32 (ptr, ...) @printf(ptr @.str54) #358  %4 = load <16 x i32>, ptr getelementptr inbounds ([15 x <16 x i32>], ptr @vectors, i32 0, i32 1), align 6459  %call300 = call i32 (ptr, ...) @printf(ptr @.str290) #360  %5 = load <16 x i32>, ptr @vectors, align 6461  %6 = load <16 x i32>, ptr getelementptr inbounds ([15 x <16 x i32>], ptr @vectors, i32 0, i32 1), align 6462  %call1373 = call i32 (ptr, ...) @printf(ptr @.str1, ptr @.str2, ptr @.str243) #363  %7 = call <16 x i32> @llvm.hexagon.V6.lvsplatw(i32 1)64  %call1381 = call i32 (ptr, ...) @printf(ptr @.str1, ptr @.str2, ptr @.str251) #365  %8 = call <16 x i32> @llvm.hexagon.V6.lvsplatw(i32 1)66  %9 = call <64 x i1> @llvm.hexagon.V6.vandvrt(<16 x i32> %8, i32 16843009)67  call void @print_vector(i32 64, ptr @VectorResult)68  %10 = call <16 x i32> @llvm.hexagon.V6.lvsplatw(i32 1)69  %11 = call <64 x i1> @llvm.hexagon.V6.vandvrt(<16 x i32> %10, i32 16843009)70  %12 = tail call <16 x i32> @llvm.hexagon.V6.vandqrt(<64 x i1> %11, i32 -1)71  %13 = tail call <64 x i1> @llvm.hexagon.V6.vandvrt(<16 x i32> %12, i32 -1)72  %14 = call <16 x i32> @llvm.hexagon.V6.vsubhnq(<64 x i1> %13, <16 x i32> undef, <16 x i32> undef)73  store <16 x i32> %14, ptr @VectorResult, align 6474  ret i32 075}76 77attributes #0 = { nounwind "less-precise-fpmad"="false" "frame-pointer"="all" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" }78attributes #1 = { nounwind readnone }79attributes #2 = { "less-precise-fpmad"="false" "frame-pointer"="all" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" }80attributes #3 = { nounwind }81