xref: /llvm-project/llvm/test/CodeGen/ARM/fold-const.ll (revision 7258735fa0b60dd7800f5b9859aceeee16bb4990)
1*7258735fSSaleem Abdulrasool; RUN: llc -mtriple=arm-eabi -mattr=+v7 %s -o - | FileCheck %s
20c666b46SEric Christopher
30c666b46SEric Christopherdefine i32 @f(i32 %a) nounwind readnone optsize ssp {
40c666b46SEric Christopherentry:
50c666b46SEric Christopher  %conv = zext i32 %a to i64
66b0e34c4SChandler Carruth  %tmp1 = tail call i64 @llvm.ctlz.i64(i64 %conv, i1 true)
70c666b46SEric Christopher; CHECK: clz
80c666b46SEric Christopher; CHECK-NOT: adds
90c666b46SEric Christopher  %cast = trunc i64 %tmp1 to i32
100c666b46SEric Christopher  %sub = sub nsw i32 63, %cast
110c666b46SEric Christopher  ret i32 %sub
120c666b46SEric Christopher}
130c666b46SEric Christopher
146b0e34c4SChandler Carruthdeclare i64 @llvm.ctlz.i64(i64, i1) nounwind readnone
15