Skip to content

Commit 8a407a5

Browse files
author
Andy Kaylor
committed
Revert some auto-generated checks where a wildcard was needed
This change reverts a batch of autogenerated checks in the pow-exp.ll file where a previous version had used wildcards to account for minor variations in constant folding by different math libraries. The test is also updated to add a comment that will prevent future autogeneration. See: https://discourse.llvm.org/t/auto-generated-checks-with-inexact-fp-results/71713 Differential Revision: https://reviews.llvm.org/D158758
1 parent c9f3288 commit 8a407a5

File tree

1 file changed

+17
-14
lines changed

1 file changed

+17
-14
lines changed

llvm/test/Transforms/InstCombine/pow-exp.ll

Lines changed: 17 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,7 @@
1-
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
1+
; NOTE: Do not autogenerate
2+
; Assertions were previously autogenerated by utils/update_test_checks.py
3+
; but some hand modifications were needed to account for rounding errors
4+
; in constant folding that depend on the compiler's math library version.
25
; RUN: opt < %s -passes=instcombine -S | FileCheck %s
36

47
define float @powf_expf(float %x, float %y) {
@@ -212,18 +215,18 @@ declare void @use_f(float)
212215

213216
define double @pow_ok_base(double %e) {
214217
; CHECK-LABEL: @pow_ok_base(
215-
; CHECK-NEXT: [[MUL:%.*]] = fmul nnan ninf afn double [[E:%.*]], 0xBFE0776228967D13
218+
; Do not change 0xBFE0776{{.*}} to the exact constant, see PR42740
219+
; CHECK-NEXT: [[MUL:%.*]] = fmul nnan ninf afn double [[E:%.*]], 0xBFE0776{{.*}}
216220
; CHECK-NEXT: [[EXP2:%.*]] = tail call nnan ninf afn double @exp2(double [[MUL]])
217221
; CHECK-NEXT: ret double [[EXP2]]
218222
;
219-
; Do not change 0xBFE0776{{.*}} to the exact constant, see PR42740
220223
%call = tail call afn nnan ninf double @pow(double 0x3FE6666666666666, double %e)
221224
ret double %call
222225
}
223226

224227
define double @pow_ok_base_fast(double %e) {
225228
; CHECK-LABEL: @pow_ok_base_fast(
226-
; CHECK-NEXT: [[MUL:%.*]] = fmul fast double [[E:%.*]], 0xBFE0776228967D13
229+
; CHECK-NEXT: [[MUL:%.*]] = fmul fast double [[E:%.*]], 0xBFE0776{{.*}}
227230
; CHECK-NEXT: [[EXP2:%.*]] = tail call fast double @exp2(double [[MUL]])
228231
; CHECK-NEXT: ret double [[EXP2]]
229232
;
@@ -233,7 +236,7 @@ define double @pow_ok_base_fast(double %e) {
233236

234237
define double @pow_ok_base2(double %e) {
235238
; CHECK-LABEL: @pow_ok_base2(
236-
; CHECK-NEXT: [[MUL:%.*]] = fmul nnan ninf afn double [[E:%.*]], 0x4010952C788751AC
239+
; CHECK-NEXT: [[MUL:%.*]] = fmul nnan ninf afn double [[E:%.*]], 0x4010952{{.*}}
237240
; CHECK-NEXT: [[EXP2:%.*]] = tail call nnan ninf afn double @exp2(double [[MUL]])
238241
; CHECK-NEXT: ret double [[EXP2]]
239242
;
@@ -243,7 +246,7 @@ define double @pow_ok_base2(double %e) {
243246

244247
define double @pow_ok_base3(double %e) {
245248
; CHECK-LABEL: @pow_ok_base3(
246-
; CHECK-NEXT: [[MUL:%.*]] = fmul nnan ninf afn double [[E:%.*]], 0x400AB0B5584886CD
249+
; CHECK-NEXT: [[MUL:%.*]] = fmul nnan ninf afn double [[E:%.*]], 0x400AB0B5{{.*}}
247250
; CHECK-NEXT: [[EXP2:%.*]] = tail call nnan ninf afn double @exp2(double [[MUL]])
248251
; CHECK-NEXT: ret double [[EXP2]]
249252
;
@@ -253,7 +256,7 @@ define double @pow_ok_base3(double %e) {
253256

254257
define double @pow_ok_ten_base(double %e) {
255258
; CHECK-LABEL: @pow_ok_ten_base(
256-
; CHECK-NEXT: [[MUL:%.*]] = fmul nnan ninf afn double [[E:%.*]], 0x400A934F0979A371
259+
; CHECK-NEXT: [[MUL:%.*]] = fmul nnan ninf afn double [[E:%.*]], 0x400A934F{{.*}}
257260
; CHECK-NEXT: [[EXP2:%.*]] = tail call nnan ninf afn double @exp2(double [[MUL]])
258261
; CHECK-NEXT: ret double [[EXP2]]
259262
;
@@ -273,7 +276,7 @@ define double @pow_ok_denorm_base(double %e) {
273276

274277
define float @powf_ok_base(float %e) {
275278
; CHECK-LABEL: @powf_ok_base(
276-
; CHECK-NEXT: [[MUL:%.*]] = fmul nnan ninf afn float [[E:%.*]], 0xBFE0776240000000
279+
; CHECK-NEXT: [[MUL:%.*]] = fmul nnan ninf afn float [[E:%.*]], 0xBFE07762{{.*}}
277280
; CHECK-NEXT: [[EXP2F:%.*]] = tail call nnan ninf afn float @exp2f(float [[MUL]])
278281
; CHECK-NEXT: ret float [[EXP2F]]
279282
;
@@ -283,7 +286,7 @@ define float @powf_ok_base(float %e) {
283286

284287
define float @powf_ok_base2(float %e) {
285288
; CHECK-LABEL: @powf_ok_base2(
286-
; CHECK-NEXT: [[MUL:%.*]] = fmul nnan ninf afn float [[E:%.*]], 0x4010952C80000000
289+
; CHECK-NEXT: [[MUL:%.*]] = fmul nnan ninf afn float [[E:%.*]], 0x4010952{{.*}}
287290
; CHECK-NEXT: [[EXP2F:%.*]] = tail call nnan ninf afn float @exp2f(float [[MUL]])
288291
; CHECK-NEXT: ret float [[EXP2F]]
289292
;
@@ -293,7 +296,7 @@ define float @powf_ok_base2(float %e) {
293296

294297
define float @powf_ok_base3(float %e) {
295298
; CHECK-LABEL: @powf_ok_base3(
296-
; CHECK-NEXT: [[MUL:%.*]] = fmul nnan ninf afn float [[E:%.*]], 0x400AB0B560000000
299+
; CHECK-NEXT: [[MUL:%.*]] = fmul nnan ninf afn float [[E:%.*]], 0x400AB0B5{{.*}}
297300
; CHECK-NEXT: [[EXP2F:%.*]] = tail call nnan ninf afn float @exp2f(float [[MUL]])
298301
; CHECK-NEXT: ret float [[EXP2F]]
299302
;
@@ -303,7 +306,7 @@ define float @powf_ok_base3(float %e) {
303306

304307
define float @powf_ok_ten_base(float %e) {
305308
; CHECK-LABEL: @powf_ok_ten_base(
306-
; CHECK-NEXT: [[MUL:%.*]] = fmul nnan ninf afn float [[E:%.*]], 0x400A934F00000000
309+
; CHECK-NEXT: [[MUL:%.*]] = fmul nnan ninf afn float [[E:%.*]], 0x400A934{{.*}}
307310
; CHECK-NEXT: [[EXP2F:%.*]] = tail call nnan ninf afn float @exp2f(float [[MUL]])
308311
; CHECK-NEXT: ret float [[EXP2F]]
309312
;
@@ -370,7 +373,7 @@ define double @pow_negative_base(double %e) {
370373

371374
define double @pow_multiuse(double %e) {
372375
; CHECK-LABEL: @pow_multiuse(
373-
; CHECK-NEXT: [[MUL:%.*]] = fmul nnan ninf afn double [[E:%.*]], 0x4002934F0979A371
376+
; CHECK-NEXT: [[MUL:%.*]] = fmul nnan ninf afn double [[E:%.*]], 0x4002934{{.*}}
374377
; CHECK-NEXT: [[EXP2:%.*]] = tail call nnan ninf afn double @exp2(double [[MUL]])
375378
; CHECK-NEXT: tail call void @use_d(double [[EXP2]])
376379
; CHECK-NEXT: ret double [[EXP2]]
@@ -400,7 +403,7 @@ define double @pow_ok_base_no_nnan(double %e) {
400403

401404
define double @pow_ok_base_no_ninf(double %e) {
402405
; CHECK-LABEL: @pow_ok_base_no_ninf(
403-
; CHECK-NEXT: [[MUL:%.*]] = fmul nnan afn double [[E:%.*]], 0xBFE0776228967D13
406+
; CHECK-NEXT: [[MUL:%.*]] = fmul nnan afn double [[E:%.*]], 0xBFE0776{{.*}}
404407
; CHECK-NEXT: [[EXP2:%.*]] = tail call nnan afn double @exp2(double [[MUL]])
405408
; CHECK-NEXT: ret double [[EXP2]]
406409
;
@@ -455,7 +458,7 @@ define float @powf_negative_base(float %e) {
455458

456459
define float @powf_multiuse(float %e) {
457460
; CHECK-LABEL: @powf_multiuse(
458-
; CHECK-NEXT: [[MUL:%.*]] = fmul nnan ninf afn float [[E:%.*]], 0x4002934F00000000
461+
; CHECK-NEXT: [[MUL:%.*]] = fmul nnan ninf afn float [[E:%.*]], 0x4002934{{.*}}
459462
; CHECK-NEXT: [[EXP2F:%.*]] = tail call nnan ninf afn float @exp2f(float [[MUL]])
460463
; CHECK-NEXT: tail call void @use_f(float [[EXP2F]])
461464
; CHECK-NEXT: ret float [[EXP2F]]

0 commit comments

Comments
 (0)