aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-vectorizer.h
diff options
context:
space:
mode:
authorAldy Hernandez <aldyh@redhat.com>2022-09-06 08:20:54 +0200
committerAldy Hernandez <aldyh@redhat.com>2022-09-06 13:48:05 +0200
commitf5dc9da0a97734ab68a4af34875640ed1ca0c7d1 (patch)
tree0a12434812602043f5a5c46af92ca82357d9a609 /gcc/tree-vectorizer.h
parent12f0783111067b68673284665a886cdd0c8f55c3 (diff)
downloadgcc-f5dc9da0a97734ab68a4af34875640ed1ca0c7d1.zip
gcc-f5dc9da0a97734ab68a4af34875640ed1ca0c7d1.tar.gz
gcc-f5dc9da0a97734ab68a4af34875640ed1ca0c7d1.tar.bz2
Handle > INF and < INF correctly in range-op-float.cc
The gfortran.dg/minlocval*.f90 tests are generating conditionals past the infinities. For example: if (x <= +Inf) foo (x); else bar (x); It seems to me that the only possible value for x on the false side is either NAN or undefined (for !HONOR_NANS). gcc/ChangeLog: * range-op-float.cc (build_le): Handle NANs and going past infinity. (build_lt): Same. (build_ge): Same. (build_gt): Same. (foperator_lt::op1_range): Avoid adjustments to range if build_* returned false. (foperator_lt::op2_range): Same. (foperator_le::op1_range): Same. (foperator_le::op2_range): Same. (foperator_gt::op1_range): Same. (foperator_gt::op2_range): Same. gcc/testsuite/ChangeLog: * gcc.dg/tree-ssa/vrp-float-inf-1.c: New test.
Diffstat (limited to 'gcc/tree-vectorizer.h')
0 files changed, 0 insertions, 0 deletions