• Home
  • Raw
  • Download

Lines Matching refs:overflow

4 ; Check that we simplify llvm.umul.with.overflow, if the overflow check is
5 ; weakened by or (icmp ne %res, 0) %overflow. This is generated by code using
12 declare { i64, i1 } @llvm.umul.with.overflow.i64(i64, i64) #0
24 %res = tail call { i64, i1 } @llvm.umul.with.overflow.i64(i64 %a, i64 %b)
25 %overflow = extractvalue { i64, i1 } %res, 1
28 %overflow.1 = or i1 %overflow, %cmp
30 ret i1 %overflow.1
44 %res = tail call { i64, i1 } @llvm.umul.with.overflow.i64(i64 %a, i64 %b)
45 %overflow = extractvalue { i64, i1 } %res, 1
48 %overflow.1 = or i1 %cmp, %overflow
50 ret i1 %overflow.1
64 %res = tail call { i64, i1 } @llvm.umul.with.overflow.i64(i64 %a, i64 %b)
65 %overflow = extractvalue { i64, i1 } %res, 1
68 %overflow.1 = or i1 %overflow, %cmp
71 ret i1 %overflow.1
78 ; CHECK-NEXT: [[RES:%.*]] = tail call { i64, i1 } @llvm.umul.with.overflow.i64(i64 [[A:%.*]], i6…
86 %res = tail call { i64, i1 } @llvm.umul.with.overflow.i64(i64 %a, i64 %b)
87 %overflow = extractvalue { i64, i1 } %res, 1
90 %overflow.1 = or i1 %overflow, %cmp
91 call void @use(i1 %overflow)
92 ret i1 %overflow.1
95 ; Do not simplify if %overflow and %mul have multiple uses.
98 ; CHECK-NEXT: [[RES:%.*]] = tail call { i64, i1 } @llvm.umul.with.overflow.i64(i64 [[A:%.*]], i6…
108 %res = tail call { i64, i1 } @llvm.umul.with.overflow.i64(i64 %a, i64 %b)
109 %overflow = extractvalue { i64, i1 } %res, 1
112 %overflow.1 = or i1 %overflow, %cmp
115 call void @use(i1 %overflow)
116 ret i1 %overflow.1
123 ; CHECK-NEXT: [[RES:%.*]] = tail call { i64, i1 } @llvm.umul.with.overflow.i64(i64 [[A:%.*]], i6…
133 %res = tail call { i64, i1 } @llvm.umul.with.overflow.i64(i64 %a, i64 %b)
134 %overflow = extractvalue { i64, i1 } %res, 1
137 %overflow.1 = or i1 %overflow, %cmp
141 ret i1 %overflow.1
159 %res = tail call { i64, i1 } @llvm.umul.with.overflow.i64(i64 %a, i64 %b)
160 %overflow = extractvalue { i64, i1 } %res, 1
163 %overflow.1 = or i1 %overflow, %cmp
167 ret i1 %overflow.1
174 ; CHECK-NEXT: [[RES:%.*]] = tail call { i64, i1 } @llvm.umul.with.overflow.i64(i64 [[A:%.*]], i6…
183 %res = tail call { i64, i1 } @llvm.umul.with.overflow.i64(i64 %a, i64 %b)
184 %overflow = extractvalue { i64, i1 } %res, 1
187 %overflow.1 = or i1 %overflow, %cmp
190 ret i1 %overflow.1