On Thu, 13 Oct 2022, Andre Vieira (lists) wrote: > Hi Rainer, > > Thanks for reporting, I was actually expecting these! I thought about > pre-empting them by using a positive filter on the tests for aarch64 and > x86_64 as I knew those would pass, but I thought it would be better to let > other targets report failures since then you get a testsuite that covers more > targets than just what I'm able to check. > > Are there any sparc architectures that would support these or should I just > xfail sparc*-*-* ? > > For instance: I also saw PR107240 for which one of the write tests fails on > Power 7 BE. I'm suggesting adding an xfail for that one
for the failure below we seem to require vectorizing shifts for which I think we have a vect_* target to check? > Kind regards, > Andre > > On 13/10/2022 12:39, Rainer Orth wrote: > > Hi Andre, > > > >> The bitposition calculation for the bitfield lowering in loop if conversion > >> was not > >> taking DECL_FIELD_OFFSET into account, which meant that it would result in > >> wrong bitpositions for bitfields that did not end up having representations > >> starting at the beginning of the struct. > >> > >> Bootstrappend and regression tested on aarch64-none-linux-gnu and > >> x86_64-pc-linux-gnu. > > I tried this patch together with the one for PR tree-optimization/107226 > > on sparc-sun-solaris2.11 to check if it cures the bootstrap failure > > reported in PR tree-optimization/107232. While this restores bootstrap, > > several of the new tests FAIL: > > > > +FAIL: gcc.dg/vect/vect-bitfield-read-1.c -flto -ffat-lto-objects > > scan-tree-dump-times vect "vectorized 1 loops" 1 > > +FAIL: gcc.dg/vect/vect-bitfield-read-1.c scan-tree-dump-times vect > > "vectorized 1 loops" 1 > > +FAIL: gcc.dg/vect/vect-bitfield-read-2.c -flto -ffat-lto-objects > > scan-tree-dump-times vect "vectorized 1 loops" 1 > > +FAIL: gcc.dg/vect/vect-bitfield-read-2.c scan-tree-dump-times vect > > "vectorized 1 loops" 1 > > +FAIL: gcc.dg/vect/vect-bitfield-read-3.c -flto -ffat-lto-objects > > scan-tree-dump-times vect "vectorized 2 loops" 1 > > +FAIL: gcc.dg/vect/vect-bitfield-read-3.c scan-tree-dump-times vect > > "vectorized 2 loops" 1 > > +FAIL: gcc.dg/vect/vect-bitfield-read-4.c -flto -ffat-lto-objects > > scan-tree-dump-times vect "vectorized 1 loops" 1 > > +FAIL: gcc.dg/vect/vect-bitfield-read-4.c scan-tree-dump-times vect > > "vectorized 1 loops" 1 > > +FAIL: gcc.dg/vect/vect-bitfield-read-6.c -flto -ffat-lto-objects > > scan-tree-dump-times vect "vectorized 1 loops" 1 > > +FAIL: gcc.dg/vect/vect-bitfield-write-1.c -flto -ffat-lto-objects > > scan-tree-dump-times vect "vectorized 1 loops" 1 > > +FAIL: gcc.dg/vect/vect-bitfield-write-1.c scan-tree-dump-times vect > > "vectorized 1 loops" 1 > > +FAIL: gcc.dg/vect/vect-bitfield-write-2.c -flto -ffat-lto-objects > > scan-tree-dump-times vect "vectorized 1 loops" 1 > > +FAIL: gcc.dg/vect/vect-bitfield-write-2.c scan-tree-dump-times vect > > "vectorized 1 loops" 1 > > +FAIL: gcc.dg/vect/vect-bitfield-write-3.c -flto -ffat-lto-objects > > scan-tree-dump-times vect "vectorized 1 loops" 1 > > +FAIL: gcc.dg/vect/vect-bitfield-write-3.c scan-tree-dump-times vect > > "vectorized 1 loops" 1 > > +FAIL: gcc.dg/vect/vect-bitfield-write-5.c -flto -ffat-lto-objects > > scan-tree-dump-times vect "vectorized 1 loops" 1 > > +FAIL: gcc.dg/vect/vect-bitfield-write-5.c scan-tree-dump-times vect > > "vectorized 1 loops" 1 > > > > For vect-bitfield-read-1.c, the dump has > > > > gcc.dg/vect/vect-bitfield-read-1.c:25:23: note: ==> examining pattern def > > statement: patt_31 = patt_30 >> 1; > > gcc.dg/vect/vect-bitfield-read-1.c:25:23: note: ==> examining statement: > > patt_31 = patt_30 >> 1; > > gcc.dg/vect/vect-bitfield-read-1.c:25:23: note: vect_is_simple_use: > > operand _ifc__27 & 4294967294, type of def: internal > > gcc.dg/vect/vect-bitfield-read-1.c:25:23: note: vect_is_simple_use: > > vectype vector(2) unsigned int > > gcc.dg/vect/vect-bitfield-read-1.c:25:23: note: vect_is_simple_use: > > operand 1, type of def: constant > > gcc.dg/vect/vect-bitfield-read-1.c:25:23: missed: op not supported by > > target. > > gcc.dg/vect/vect-bitfield-read-1.c:23:1: missed: not vectorized: relevant > > stmt not supported: patt_31 = patt_30 >> 1; > > gcc.dg/vect/vect-bitfield-read-1.c:25:23: missed: bad operation or > > unsupported loop bound. > > gcc.dg/vect/vect-bitfield-read-1.c:25:23: note: ***** Analysis failed with > > vector mode V2SI > > > > Rainer > > > -- Richard Biener <rguent...@suse.de> SUSE Software Solutions Germany GmbH, Frankenstrasse 146, 90461 Nuernberg, Germany; GF: Ivo Totev, Andrew Myers, Andrew McDonald, Boudien Moerman; HRB 36809 (AG Nuernberg)