Home | History | Annotate | Download | only in Hexagon
      1 ; RUN: llc -march=hexagon < %s | FileCheck %s
      2 
      3 @d = external global <16 x i32>
      4 
      5 ; CHECK-LABEL: test18:
      6 ; CHECK: v{{[0-9]+}}.uw = vcl0(v{{[0-9]+}}.uw)
      7 define void @test18(<16 x i32> %a) #0 {
      8 entry:
      9   %0 = tail call <16 x i32> @llvm.hexagon.V6.vcl0w(<16 x i32> %a)
     10   store <16 x i32> %0, <16 x i32>* @d, align 64
     11   ret void
     12 }
     13 
     14 ; CHECK-LABEL: test19:
     15 ; CHECK: v{{[0-9]+}}.h = vpopcount(v{{[0-9]+}}.h)
     16 define void @test19(<16 x i32> %a) #0 {
     17 entry:
     18   %0 = tail call <16 x i32> @llvm.hexagon.V6.vpopcounth(<16 x i32> %a)
     19   store <16 x i32> %0, <16 x i32>* @d, align 64
     20   ret void
     21 }
     22 
     23 ; CHECK-LABEL: test20:
     24 ; CHECK: v{{[0-9]+}}.uh = vcl0(v{{[0-9]+}}.uh)
     25 define void @test20(<16 x i32> %a) #0 {
     26 entry:
     27   %0 = tail call <16 x i32> @llvm.hexagon.V6.vcl0h(<16 x i32> %a)
     28   store <16 x i32> %0, <16 x i32>* @d, align 64
     29   ret void
     30 }
     31 
     32 ; CHECK-LABEL: test21:
     33 ; CHECK: v{{[0-9]+}}.w = vnormamt(v{{[0-9]+}}.w)
     34 define void @test21(<16 x i32> %a) #0 {
     35 entry:
     36   %0 = tail call <16 x i32> @llvm.hexagon.V6.vnormamtw(<16 x i32> %a)
     37   store <16 x i32> %0, <16 x i32>* @d, align 64
     38   ret void
     39 }
     40 
     41 ; CHECK-LABEL: test22:
     42 ; CHECK: v{{[0-9]+}}.h = vnormamt(v{{[0-9]+}}.h)
     43 define void @test22(<16 x i32> %a) #0 {
     44 entry:
     45   %0 = tail call <16 x i32> @llvm.hexagon.V6.vnormamth(<16 x i32> %a)
     46   store <16 x i32> %0, <16 x i32>* @d, align 64
     47   ret void
     48 }
     49 
     50 declare <16 x i32> @llvm.hexagon.V6.vcl0w(<16 x i32>) #0
     51 declare <16 x i32> @llvm.hexagon.V6.vpopcounth(<16 x i32>) #0
     52 declare <16 x i32> @llvm.hexagon.V6.vcl0h(<16 x i32>) #0
     53 declare <16 x i32> @llvm.hexagon.V6.vnormamtw(<16 x i32>) #0
     54 declare <16 x i32> @llvm.hexagon.V6.vnormamth(<16 x i32>) #0
     55 
     56 attributes #0 = { nounwind readnone "target-cpu"="hexagonv60" "target-features"="+hvxv60,+hvx-length64b" }
     57