Home | History | Annotate | Download | only in NVPTX
      1 ; RUN: llc < %s -march=nvptx -mcpu=sm_20 | FileCheck %s
      2 
      3 
      4 target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v16:16:16-v32:32:32-v64:64:64-v128:128:128-n16:32:64"
      5 
      6 declare i16 @llvm.cttz.i16(i16, i1) readnone
      7 declare i32 @llvm.cttz.i32(i32, i1) readnone
      8 declare i64 @llvm.cttz.i64(i64, i1) readnone
      9 
     10 define i32 @myctpop(i32 %a) {
     11 ; CHECK: popc.b32
     12   %val = call i32 @llvm.cttz.i32(i32 %a, i1 false) readnone
     13   ret i32 %val
     14 }
     15 
     16 define i16 @myctpop16(i16 %a) {
     17 ; CHECK: popc.b32
     18   %val = call i16 @llvm.cttz.i16(i16 %a, i1 false) readnone
     19   ret i16 %val
     20 }
     21 
     22 define i64 @myctpop64(i64 %a) {
     23 ; CHECK: popc.b64
     24   %val = call i64 @llvm.cttz.i64(i64 %a, i1 false) readnone
     25   ret i64 %val
     26 }
     27 
     28 
     29 define i32 @myctpop_2(i32 %a) {
     30 ; CHECK: popc.b32
     31   %val = call i32 @llvm.cttz.i32(i32 %a, i1 true) readnone
     32   ret i32 %val
     33 }
     34 
     35 define i16 @myctpop16_2(i16 %a) {
     36 ; CHECK: popc.b32
     37   %val = call i16 @llvm.cttz.i16(i16 %a, i1 true) readnone
     38   ret i16 %val
     39 }
     40 
     41 define i64 @myctpop64_2(i64 %a) {
     42 ; CHECK: popc.b64
     43   %val = call i64 @llvm.cttz.i64(i64 %a, i1 true) readnone
     44   ret i64 %val
     45 }
     46