xref: /llvm-project/llvm/test/CodeGen/AArch64/cls.ll (revision f6e11a36c49c065cd71e9c54e4fba917da5bbf2e)
1; RUN: llc -mtriple=aarch64 %s -o - | FileCheck %s
2
3; @llvm.aarch64.cls must be directly translated into the 'cls' instruction
4
5; CHECK-LABEL: cls
6; CHECK: cls [[REG:w[0-9]+]], [[REG]]
7define i32 @cls(i32 %t) {
8  %cls.i = call i32 @llvm.aarch64.cls(i32 %t)
9  ret i32 %cls.i
10}
11
12; CHECK-LABEL: cls64
13; CHECK: cls [[REG:x[0-9]+]], [[REG]]
14define i32 @cls64(i64 %t) {
15  %cls.i = call i32 @llvm.aarch64.cls64(i64 %t)
16  ret i32 %cls.i
17}
18
19declare i32 @llvm.aarch64.cls(i32) nounwind
20declare i32 @llvm.aarch64.cls64(i64) nounwind
21