EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  <20202021  2022  2023  2024  Index 2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  <20202021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: [Bug 1838792] Re: epicsCalc bit-wise operators on aarch64
From: mdavidsaver via Core-talk <core-talk at aps.anl.gov>
To: core-talk at aps.anl.gov
Date: Sun, 24 May 2020 18:24:31 -0000
** Changed in: epics-base/7.0
       Status: In Progress => Fix Committed

-- 
You received this bug notification because you are a member of EPICS
Core Developers, which is subscribed to EPICS Base.
Matching subscriptions: epics-core-list-subscription
https://bugs.launchpad.net/bugs/1838792

Title:
  epicsCalc bit-wise operators on aarch64

Status in EPICS Base:
  Fix Committed
Status in EPICS Base 3.15 series:
  Fix Released
Status in EPICS Base 7.0 series:
  Fix Committed

Bug description:
  Kiman Ha has reported failures of epicsCalcTest running on a 64-bit
  ARM system with a quad Cortex-A53 core:

  OS : Debian GNU/Linux 10.0
  Core Architecture : aarch64
  Kernel : 4.19.0
  gcc version 8.3.0 (Debian 8.3.0-6)

  The failures are identical on Base 3.16.2, 7.0.2.2 and 7.0.3 (no other
  tests fail):

  > not ok 225 - ~~5
  > # Expected result is 5, actually got -1
  >         Integer 5 (0x5)
  >         BIT_NOT
  >         BIT_NOT
  > not ok 511 - 2 | 1 - 3
  > # Expected result is -2, actually got 2
  >         Integer 2 (0x2)
  >         Integer 1 (0x1)
  >         Integer 3 (0x3)
  >         SUB
  >         BIT_OR
  > not ok 522 - 3 AND -2
  > # Expected result is 2, actually got 0
  >         Integer 3 (0x3)
  >         Integer 2 (0x2)
  >         UNARY_NEG
  >         BIT_AND
  > not ok 578 - 0xaaaaaaaa AND 0xffff0000
  > # Expected result is 0xaaaa0000 (2863267840), actually got 0x0 (0)
  >         Integer -1431655766 (0xaaaaaaaa)
  >         Integer -65536 (0xffff0000)
  >         BIT_AND
  > not ok 579 - 0xaaaaaaaa OR 0xffff0000
  > # Expected result is 0xffffaaaa (4294945450), actually got 0x0 (0)
  >         Integer -1431655766 (0xaaaaaaaa)
  >         Integer -65536 (0xffff0000)
  >         BIT_OR
  > not ok 580 - 0xaaaaaaaa XOR 0xffff0000
  > # Expected result is 0x5555aaaa (1431677610), actually got 0x0 (0)
  >         Integer -1431655766 (0xaaaaaaaa)
  >         Integer -65536 (0xffff0000)
  >         BIT_EXCL_OR
  > not ok 581 - ~0xaaaaaaaa
  > # Expected result is 0x55555555 (1431655765), actually got 0x0 (0)
  >         Integer -1431655766 (0xaaaaaaaa)
  >         BIT_NOT
  > not ok 582 - ~~0xaaaaaaaa
  > # Expected result is 0xaaaaaaaa (2863311530), actually got 0x0 (0)
  >         Integer -1431655766 (0xaaaaaaaa)
  >         BIT_NOT
  >         BIT_NOT
  > not ok 583 - 0xaaaaaaaa >> 8
  > # Expected result is 0xffaaaaaa (4289374890), actually got 0x0 (0)
  >         Integer -1431655766 (0xaaaaaaaa)
  >         Integer 8 (0x8)
  >         RIGHT_SHIFT
  > not ok 584 - 0xaaaaaaaa << 8
  > # Expected result is 0xaaaaaa00 (2863311360), actually got 0x0 (0)
  >         Integer -1431655766 (0xaaaaaaaa)
  >         Integer 8 (0x8)
  >         LEFT_SHIFT
  > not ok 585 - a:=0xaaaaaaaa; b:=0xffff0000; a AND b
  > # Expected result is 0xaaaa0000 (2863267840), actually got 0x0 (0)
  >         Integer -1431655766 (0xaaaaaaaa)
  >         STORE_A
  >         Integer -65536 (0xffff0000)
  >         STORE_B
  >         FETCH_A
  >         FETCH_B
  >         BIT_AND
  > not ok 586 - a:=0xaaaaaaaa; b:=0xffff0000; a OR b
  > # Expected result is 0xffffaaaa (4294945450), actually got 0x0 (0)
  >         Integer -1431655766 (0xaaaaaaaa)
  >         STORE_A
  >         Integer -65536 (0xffff0000)
  >         STORE_B
  >         FETCH_A
  >         FETCH_B
  >         BIT_OR
  > not ok 587 - a:=0xaaaaaaaa; b:=0xffff0000; a XOR b
  > # Expected result is 0x5555aaaa (1431677610), actually got 0x0 (0)
  >         Integer -1431655766 (0xaaaaaaaa)
  >         STORE_A
  >         Integer -65536 (0xffff0000)
  >         STORE_B
  >         FETCH_A
  >         FETCH_B
  >         BIT_EXCL_OR
  > not ok 588 - a:=0xaaaaaaaa; ~a
  > # Expected result is 0x55555555 (1431655765), actually got 0x0 (0)
  >         Integer -1431655766 (0xaaaaaaaa)
  >         STORE_A
  >         FETCH_A
  >         BIT_NOT
  > not ok 589 - a:=0xaaaaaaaa; ~~a
  > # Expected result is 0xaaaaaaaa (2863311530), actually got 0x0 (0)
  >         Integer -1431655766 (0xaaaaaaaa)
  >         STORE_A
  >         FETCH_A
  >         BIT_NOT
  >         BIT_NOT
  > not ok 590 - a:=0xaaaaaaaa; a >> 8
  > # Expected result is 0xffaaaaaa (4289374890), actually got 0x0 (0)
  >         Integer -1431655766 (0xaaaaaaaa)
  >         STORE_A
  >         FETCH_A
  >         Integer 8 (0x8)
  >         RIGHT_SHIFT
  > not ok 591 - a:=0xaaaaaaaa; a << 8
  > # Expected result is 0xaaaaaa00 (2863311360), actually got 0x0 (0)
  >         Integer -1431655766 (0xaaaaaaaa)
  >         STORE_A
  >         FETCH_A
  >         Integer 8 (0x8)
  >         LEFT_SHIFT
  > not ok 592 - -1431655766.1 OR 0
  > # Expected result is 0xaaaaaaaa (2863311530), actually got 0x0 (0)
  >         Double 1.43166e+09
  >         UNARY_NEG
  >         Integer 0 (0x0)
  >         BIT_OR
  > not ok 593 - 2863311530.1 OR 0
  > # Expected result is 0xaaaaaaaa (2863311530), actually got 0x0 (0)
  >         Double 2.86331e+09
  >         Integer 0 (0x0)
  >         BIT_OR
  > not ok 594 - 0 OR -1431655766.1
  > # Expected result is 0xaaaaaaaa (2863311530), actually got 0x0 (0)
  >         Integer 0 (0x0)
  >         Double 1.43166e+09
  >         UNARY_NEG
  >         BIT_OR
  > not ok 595 - 0 OR 2863311530.1
  > # Expected result is 0xaaaaaaaa (2863311530), actually got 0x0 (0)
  >         Integer 0 (0x0)
  >         Double 2.86331e+09
  >         BIT_OR
  > not ok 596 - -1431655766.1 XOR 0
  > # Expected result is 0xaaaaaaaa (2863311530), actually got 0x0 (0)
  >         Double 1.43166e+09
  >         UNARY_NEG
  >         Integer 0 (0x0)
  >         BIT_EXCL_OR
  > not ok 597 - 2863311530.1 XOR 0
  > # Expected result is 0xaaaaaaaa (2863311530), actually got 0x0 (0)
  >         Double 2.86331e+09
  >         Integer 0 (0x0)
  >         BIT_EXCL_OR
  > not ok 598 - 0 XOR -1431655766.1
  > # Expected result is 0xaaaaaaaa (2863311530), actually got 0x0 (0)
  >         Integer 0 (0x0)
  >         Double 1.43166e+09
  >         UNARY_NEG
  >         BIT_EXCL_OR
  > not ok 599 - 0 XOR 2863311530.1
  > # Expected result is 0xaaaaaaaa (2863311530), actually got 0x0 (0)
  >         Integer 0 (0x0)
  >         Double 2.86331e+09
  >         BIT_EXCL_OR
  > not ok 600 - -1431655766.1 AND 0xffffffff
  > # Expected result is 0xaaaaaaaa (2863311530), actually got 0x0 (0)
  >         Double 1.43166e+09
  >         UNARY_NEG
  >         Integer -1 (0xffffffff)
  >         BIT_AND
  > not ok 601 - 2863311530.1 AND 0xffffffff
  > # Expected result is 0xaaaaaaaa (2863311530), actually got 0x0 (0)
  >         Double 2.86331e+09
  >         Integer -1 (0xffffffff)
  >         BIT_AND
  > not ok 602 - 0xffffffff AND -1431655766.1
  > # Expected result is 0xaaaaaaaa (2863311530), actually got 0x0 (0)
  >         Integer -1 (0xffffffff)
  >         Double 1.43166e+09
  >         UNARY_NEG
  >         BIT_AND
  > not ok 603 - 0xffffffff AND 2863311530.1
  > # Expected result is 0xaaaaaaaa (2863311530), actually got 0x0 (0)
  >         Integer -1 (0xffffffff)
  >         Double 2.86331e+09
  >         BIT_AND
  > not ok 604 - ~ -1431655766.1
  > # Expected result is 0x55555555 (1431655765), actually got 0x0 (0)
  >         Double 1.43166e+09
  >         UNARY_NEG
  >         BIT_NOT
  > not ok 606 - -1431655766.1 >> 0
  > # Expected result is 0xaaaaaaaa (2863311530), actually got 0x0 (0)
  >         Double 1.43166e+09
  >         UNARY_NEG
  >         Integer 0 (0x0)
  >         RIGHT_SHIFT
  > not ok 607 - 2863311530.1 >> 0
  > # Expected result is 0xaaaaaaaa (2863311530), actually got 0x0 (0)
  >         Double 2.86331e+09
  >         Integer 0 (0x0)
  >         RIGHT_SHIFT
  > not ok 608 - -1431655766.1 >> 0.1
  > # Expected result is 0xaaaaaaaa (2863311530), actually got 0x0 (0)
  >         Double 1.43166e+09
  >         UNARY_NEG
  >         Double 0.1
  >         RIGHT_SHIFT
  > not ok 609 - 2863311530.1 >> 0.1
  > # Expected result is 0xaaaaaaaa (2863311530), actually got 0x0 (0)
  >         Double 2.86331e+09
  >         Double 0.1
  >         RIGHT_SHIFT
  > not ok 610 - -1431655766.1 << 0
  > # Expected result is 0xaaaaaaaa (2863311530), actually got 0x0 (0)
  >         Double 1.43166e+09
  >         UNARY_NEG
  >         Integer 0 (0x0)
  >         LEFT_SHIFT
  > not ok 611 - 2863311530.1 << 0
  > # Expected result is 0xaaaaaaaa (2863311530), actually got 0x0 (0)
  >         Double 2.86331e+09
  >         Integer 0 (0x0)
  >         LEFT_SHIFT
  > not ok 612 - -1431655766.1 << 0.1
  > # Expected result is 0xaaaaaaaa (2863311530), actually got 0x0 (0)
  >         Double 1.43166e+09
  >         UNARY_NEG
  >         Double 0.1
  >         LEFT_SHIFT
  > not ok 613 - 2863311530.1 << 0.1
  > # Expected result is 0xaaaaaaaa (2863311530), actually got 0x0 (0)
  >         Double 2.86331e+09
  >         Double 0.1
  >         LEFT_SHIFT

To manage notifications about this bug go to:
https://bugs.launchpad.net/epics-base/+bug/1838792/+subscriptions

Navigate by Date:
Prev: [Bug 1868486] Re: epicsMessageQueue lost messages mdavidsaver via Core-talk
Next: [Bug 1858467] Re: dbExpand.pl outputs records in non-deterministic order mdavidsaver via Core-talk
Index: 2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  <20202021  2022  2023  2024 
Navigate by Thread:
Prev: [Bug 1838792] Re: epicsCalc bit-wise operators on aarch64 Andrew Johnson via Core-talk
Next: [Bug 1838792] Re: epicsCalc bit-wise operators on aarch64 Andrew Johnson via Core-talk
Index: 2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  <20202021  2022  2023  2024 
ANJ, 28 May 2020 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·