@@ -8,7 +8,7 @@ declare <2 x i32> @llvm.ctpop.v2i32(<2 x i32>)
8
8
; __builtin_popcount(i | -i) -> 32 - __builtin_cttz(i, false)
9
9
define i32 @ctpop1 (i32 %0 ) {
10
10
; CHECK-LABEL: @ctpop1(
11
- ; CHECK-NEXT: [[TMP2:%.*]] = call i32 @llvm.cttz.i32(i32 [[TMP0:%.*]], i1 false), !range !0
11
+ ; CHECK-NEXT: [[TMP2:%.*]] = call i32 @llvm.cttz.i32(i32 [[TMP0:%.*]], i1 false), !range [[RNG0:![0-9]+]]
12
12
; CHECK-NEXT: ret i32 [[TMP2]]
13
13
;
14
14
%2 = sub i32 0 , %0
@@ -34,8 +34,8 @@ define i32 @ctpop1_multiuse(i32 %0) {
34
34
; CHECK-LABEL: @ctpop1_multiuse(
35
35
; CHECK-NEXT: [[TMP2:%.*]] = sub i32 0, [[TMP0:%.*]]
36
36
; CHECK-NEXT: [[TMP3:%.*]] = or i32 [[TMP2]], [[TMP0]]
37
- ; CHECK-NEXT: [[TMP4:%.*]] = tail call i32 @llvm.ctpop.i32(i32 [[TMP3]]), !range !0
38
- ; CHECK-NEXT: [[TMP5:%.*]] = sub nuw nsw i32 32, [[TMP4 ]]
37
+ ; CHECK-NEXT: [[TMP4:%.*]] = xor i32 [[TMP3]], -1
38
+ ; CHECK-NEXT: [[TMP5:%.*]] = call i32 @llvm.ctpop. i32(i32 [[TMP4]]), !range [[RNG0 ]]
39
39
; CHECK-NEXT: [[TMP6:%.*]] = add i32 [[TMP5]], [[TMP3]]
40
40
; CHECK-NEXT: ret i32 [[TMP6]]
41
41
;
@@ -51,7 +51,7 @@ define i32 @ctpop1_multiuse(i32 %0) {
51
51
; __builtin_popcount(~i & (i-1)) -> __builtin_cttz(i, false)
52
52
define i32 @ctpop2 (i32 %0 ) {
53
53
; CHECK-LABEL: @ctpop2(
54
- ; CHECK-NEXT: [[TMP2:%.*]] = call i32 @llvm.cttz.i32(i32 [[TMP0:%.*]], i1 false), !range !0
54
+ ; CHECK-NEXT: [[TMP2:%.*]] = call i32 @llvm.cttz.i32(i32 [[TMP0:%.*]], i1 false), !range [[RNG0]]
55
55
; CHECK-NEXT: ret i32 [[TMP2]]
56
56
;
57
57
%2 = xor i32 %0 , -1
@@ -78,7 +78,7 @@ define i32 @ctpop2_multiuse(i32 %0) {
78
78
; CHECK-NEXT: [[TMP2:%.*]] = xor i32 [[TMP0:%.*]], -1
79
79
; CHECK-NEXT: [[TMP3:%.*]] = add i32 [[TMP0]], -1
80
80
; CHECK-NEXT: [[TMP4:%.*]] = and i32 [[TMP3]], [[TMP2]]
81
- ; CHECK-NEXT: [[TMP5:%.*]] = call i32 @llvm.cttz.i32(i32 [[TMP0]], i1 false), !range !0
81
+ ; CHECK-NEXT: [[TMP5:%.*]] = call i32 @llvm.cttz.i32(i32 [[TMP0]], i1 false), !range [[RNG0]]
82
82
; CHECK-NEXT: [[TMP6:%.*]] = add i32 [[TMP5]], [[TMP4]]
83
83
; CHECK-NEXT: ret i32 [[TMP6]]
84
84
;
0 commit comments