diff options
-rw-r--r-- | test/CodeGen/Generic/llvm-ct-intrinsics.ll | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/test/CodeGen/Generic/llvm-ct-intrinsics.ll b/test/CodeGen/Generic/llvm-ct-intrinsics.ll index b5c9e6feba..2095ca3584 100644 --- a/test/CodeGen/Generic/llvm-ct-intrinsics.ll +++ b/test/CodeGen/Generic/llvm-ct-intrinsics.ll @@ -19,3 +19,41 @@ void %ctpoptest(sbyte %A, short %B, int %C, long %D, store long %d, long* %DP ret void } + +declare long %llvm.ctlz(long) +declare int %llvm.ctlz(int) +declare short %llvm.ctlz(short) +declare sbyte %llvm.ctlz(sbyte) + +void %ctlztest(sbyte %A, short %B, int %C, long %D, + sbyte *%AP, short* %BP, int* %CP, long* %DP) { + %a = call sbyte %llvm.ctlz(sbyte %A) + %b = call short %llvm.ctlz(short %B) + %c = call int %llvm.ctlz(int %C) + %d = call long %llvm.ctlz(long %D) + + store sbyte %a, sbyte* %AP + store short %b, short* %BP + store int %c, int* %CP + store long %d, long* %DP + ret void +} + +declare long %llvm.cttz(long) +declare int %llvm.cttz(int) +declare short %llvm.cttz(short) +declare sbyte %llvm.cttz(sbyte) + +void %cttztest(sbyte %A, short %B, int %C, long %D, + sbyte *%AP, short* %BP, int* %CP, long* %DP) { + %a = call sbyte %llvm.cttz(sbyte %A) + %b = call short %llvm.cttz(short %B) + %c = call int %llvm.cttz(int %C) + %d = call long %llvm.cttz(long %D) + + store sbyte %a, sbyte* %AP + store short %b, short* %BP + store int %c, int* %CP + store long %d, long* %DP + ret void +} |