GCC 15.0.0 Status Report (2024-10-14), Stage 1 ends Nov 17th

2024-10-14 Thread Richard Biener via Gcc
Status == The GCC development branch which will become GCC 15 is still in stage1 but will transition to bugfixing stage3 mode beginning Monday November 18th. I have done a sweep over regressions not UNCONFIRMED or WAITING or SUSPENDED and adjusted priorities away from P3 (no priority). I woul

Re: [RFC] Enabling SVE with offloading to nvptx

2024-10-29 Thread Richard Biener via Gcc
On Mon, Oct 28, 2024 at 1:52 PM Prathamesh Kulkarni via Gcc wrote: > > > -Original Message- > > From: Richard Biener > > Sent: 21 October 2024 12:45 > > To: Prathamesh Kulkarni > > Cc: gcc@gcc.gnu.org; Thomas Schwinge ; Jakub > > Jelinek > > Subject: RE: [RFC] Enabling SVE with offloadi

RE: [RFC] Enabling SVE with offloading to nvptx

2024-11-04 Thread Richard Biener via Gcc
On Sat, 2 Nov 2024, Prathamesh Kulkarni wrote: > > > > -Original Message- > > From: Richard Biener > > Sent: 29 October 2024 16:46 > > To: Prathamesh Kulkarni > > Cc: Richard Biener ; gcc@gcc.gnu.org; Thomas > > Schwinge ; Jakub Jelinek > > Subject: Re: [RFC] Enabling SVE with offload

Re: examples of (so called) time-travel optimisations in GCC?

2024-10-26 Thread Richard Biener via Gcc
> Am 26.10.2024 um 17:30 schrieb Iain Sandoe : > > Hi, > > The background here is that I made a trial implementation of P1494r4 - > std::observable() - and want to produce testcases. > > —— so ….. > > I am looking for either examples where GCC produces time-travel optimisation > (or alter

Re: Complex arithmetic in Fortran

2024-11-13 Thread Richard Biener via Gcc
On Wed, Nov 13, 2024 at 3:05 PM Thomas Koenig wrote: > > Hello world, > > J3, the US Fortran standards committee, has passed > https://j3-fortran.org/doc/year/24/24-179.txt > which states (with a bit of an overabundance of > clarity) that, in Fortran, it is possible special-case > complex multipli

Re: Complex arithmetic in Fortran

2024-11-13 Thread Richard Biener via Gcc
On Wed, Nov 13, 2024 at 3:21 PM Toon Moene wrote: > > On 11/13/24 15:12, Richard Biener wrote: > > > On Wed, Nov 13, 2024 at 3:05 PM Thomas Koenig wrote: > >> > >> Hello world, > >> > >> J3, the US Fortran standards committee, has passed > >> https://j3-fortran.org/doc/year/24/24-179.txt > >> whi

Re: gcc relies on RISC-V vcompress instruction undefined behaviour

2024-10-31 Thread Richard Biener via Gcc
On Thu, Oct 31, 2024 at 3:55 AM Anton Blanchard via Gcc wrote: > > Hi, > > I think gcc is relying on undefined behaviour with the vcompress instruction. > Unfortunately my test case isn't reproducing on mainline, but gcc looks to > use the fields between the last mask selected field and vl while s

Re: Raise nvptx code generation to default PTX ISA 7.3, sm_52, therefore CUDA 11.3 (released 2021-04)

2024-09-23 Thread Richard Biener via Gcc
On Fri, Sep 20, 2024 at 6:50 PM Thomas Schwinge wrote: > > Hi! > > (This is orthogonal to yesterday's > "GCC 15: nvptx '-mptx=3.1' multilib variants are deprecated".) > > We'd like to raise nvptx code generation from PTX ISA 6.0, sm_30 "Kepler" > to default PTX ISA 7.3, sm_52 "Maxwell", therefore

Re: How to debug/improve excessive compiler memory usage and compile times

2024-10-01 Thread Richard Biener via Gcc
> Am 01.10.2024 um 17:11 schrieb Matthias Kretz via Gcc : > > Hi, > > the unit tests are my long-standing pain point of > excessive compiler memory usage and compile times. I've always worked around > the memory usage problem by splitting the test matrix into multiple > translations (with di

Re: How to debug/improve excessive compiler memory usage and compile times

2024-10-02 Thread Richard Biener via Gcc
On Wed, Oct 2, 2024 at 9:13 AM Richard Biener wrote: > > On Tue, Oct 1, 2024 at 6:06 PM Richard Biener > wrote: > > > > > > > > > Am 01.10.2024 um 17:11 schrieb Matthias Kretz via Gcc : > > > > > > Hi, > > > > > > the unit tests are my long-standing pain point of > > > excessive compiler memory

Re: feature request: a linker option to avoid merging variables from separate object files into shared cache lines

2024-10-25 Thread Richard Biener via Gcc
On Thu, Oct 24, 2024 at 9:48 PM David Brown via Gcc wrote: > > On 24/10/2024 16:35, Jonathan Wakely via Gcc wrote: > > On Thu, 24 Oct 2024 at 15:00, Mateusz Guzik via Gcc wrote: > > > >> I understand the stock behavior of pilling variables on may happen to > >> improve cache usage. > >> > >> Howe

Re: Use branch prediction from .gcda files

2024-11-20 Thread Richard Biener via Gcc
On Tue, Nov 19, 2024 at 11:56 AM Kamil Belter via Gcc wrote: > > Hello, > > I would like to set branch prediction based on .gcda files (I know I > could have it automatically with -fprofile-use, but with my specific > use case I can't do it). > > I've tried to use gcov-dump but I can't find any sp

GCC 15.0.0 Status Report (2024-11-18), Stage 3 in effect NOW

2024-11-18 Thread Richard Biener via Gcc
Status == The GCC development branch which will become GCC 15 is now in stage3, open for general bugfixing. Quality Data Priority # Change from last report --- --- P1 26- 5 P2 636+ 15 P3

Re: Understanding peephole2

2024-11-20 Thread Richard Biener via Gcc
On Wed, Nov 20, 2024 at 11:29 AM Georg-Johann Lay via Gcc wrote: > > Consider the following RTL peephole from avr.md: > > (define_peephole2 ; avr.md:5387 >[(match_scratch:QI 3 "d") > (parallel [(set (match_operand:ALL4 0 "register_operand" "") > (ashift:AL

Re: branch prediction not correctly applied to an if statement in an inline with multiple conditoins

2024-11-30 Thread Richard Biener via Gcc
> Am 30.11.2024 um 08:19 schrieb Mateusz Guzik via Gcc : > > Tested with gcc 14.2 and the Linux kernel compiling for amd64. This is > at Linux next-20241127. This was already the case on gcc 13 (no idea > about earlier versions), I tested 14 to see if the problem is gone. > > In the particula

Re: GDB debugging showing wrong code

2024-12-27 Thread Richard Biener via Gcc
> Am 27.12.2024 um 02:50 schrieb Trampas Stern via Gcc : > > I am doing embedded development on an arm cortex-m processor using > arm-none-eabi-gcc. I have run into a bug where GDB is showing that the > code executing is code from a function that is not used. The code is > removed as it is n

Re: RFC: Bugzilla keyword "interp" where it is not clear if a program is standard-conforming or not

2025-02-09 Thread Richard Biener via Gcc
On Mon, Feb 10, 2025 at 8:19 AM Andre Vehreschild wrote: > > Hi all, > > I don't like the new keyword. Could we do "stdcomp" (for "standard compliant") > or something like that? When a keyword allows a question mark, I would even > add > that, i.e.. like "stdcomp?". Or when we like to go with int

Re: Patch held up in gcc-patches due to size

2025-02-03 Thread Richard Biener via Gcc
On Mon, Feb 3, 2025 at 9:55 AM Jonathan Wakely wrote: > > > > On Sun, 2 Feb 2025, 18:10 Thomas Koenig via Gcc, wrote: >> >> Hi, >> >> I sent https://gcc.gnu.org/pipermail/fortran/2025-February/061670.html >> to gcc-patches also, as normal, but got back an e-mail that it >> was too large. and that

Re: Use branch prediction from .gcda files

2024-11-21 Thread Richard Biener via Gcc
On Thu, Nov 21, 2024 at 1:32 PM Kamil Belter wrote: > > On Tue, Nov 19, 2024 at 12:58 PM Richard Biener > wrote: > > > > On Tue, Nov 19, 2024 at 11:56 AM Kamil Belter via Gcc > > wrote: > > > > > > Hello, > > > > > > I would like to set branch prediction based on .gcda files (I know I > > > cou

Re: On -Wmaybe-uninitialized

2025-01-30 Thread Richard Biener via Gcc
On Thu, Jan 30, 2025 at 10:01 AM Dmitry Antipov wrote: > > With (probably) -Wmaybe-uninitialized and/or -Wextra, shouldn't the compiler > emit > warning about possibly uninitialized 'y' passed to 'ddd()' in the example > below? > > struct T { >int a; >int b; > }; > > extern int bbb (stru

Re: On -Wmaybe-uninitialized

2025-01-30 Thread Richard Biener via Gcc
On Thu, Jan 30, 2025 at 10:59 AM Jakub Jelinek wrote: > > On Thu, Jan 30, 2025 at 10:48:43AM +0100, Richard Biener via Gcc wrote: > > On Thu, Jan 30, 2025 at 10:01 AM Dmitry Antipov wrote: > > > > > > With (probably) -Wmaybe-uninitialized and/or -Wextra, shou

GCC 15.0.0 Status Report (2025-01-13), Stage 4 in effect NOW

2025-01-13 Thread Richard Biener via Gcc
Status == The GCC development branch which will become GCC 15 is now in stage4, open for regression and documentation fixes only. Quality Data Priority # Change from last report --- --- P1 32 + 6 P2

Re: Optimizing codegen for absolute differences in AArch64

2025-01-14 Thread Richard Biener via Gcc
On Tue, Jan 14, 2025 at 4:35 PM Jennifer Schmitz via Gcc wrote: > > We are working on improving codegen for the following test cases (for all > integer types T): > > T foo (T x, T y) > { > T diff = x - y; > return x > y ? diff : -diff; > } > > T bar (T x, T y) > { > T diff1 = x - y; > T d

Re: 22% degradation seen in embench:matmult-int

2025-02-12 Thread Richard Biener via Gcc
On Wed, Feb 12, 2025 at 4:38 PM Visda.Vokhshoori--- via Gcc wrote: > > Embench is used for benchmarking on embedded devices. > This one project matmult-int has a function Multiply. It’s a matrix > multiplication for 20 x 20 matrix. > The device is a ATSAME70Q21B which is Cortex-M7 > The compiler

Re: COBOL test cases

2025-03-15 Thread Richard Biener via Gcc
> Am 15.03.2025 um 18:20 schrieb Robert Dubner : > >  >> >> -Original Message- >> From: Jakub Jelinek >> Sent: Saturday, March 15, 2025 12:58 >> To: Robert Dubner ; 'GCC Mailing List' >> ; 'James K. Lowden' ; > 'Richard >> Biener' >> Subject: Re: COBOL test cases >> >>> On Sat, Mar

Re: libgcc: Disable building shared objects ?

2025-03-21 Thread Richard Biener via Gcc
On Thu, Mar 20, 2025 at 8:05 PM Georg-Johann Lay via Gcc wrote: > > For avr, there is no support for shared objects, yet > when building libgcc, for each module.o there is also module_s.o > that's build with -DSHARED. > > How can this be turned off? > > What doesn't word is to configure with --dis

Re: Pointer semantics in GIMPLE

2025-03-21 Thread Richard Biener via Gcc
On Fri, Mar 21, 2025 at 12:27 AM Krister Walfridsson wrote: > > On Thu, 20 Mar 2025, Richard Biener wrote: > > >> Pointer arithmetic -- POINTER_DIFF_EXPR > >> --- > >> Subtracting a pointer q from a pointer p is done using POINTER_DIFF_EXPR. > >> * It is UB if

Re: libgcc: Disable building shared objects ?

2025-03-21 Thread Richard Biener via Gcc
On Fri, Mar 21, 2025 at 2:38 PM Georg-Johann Lay wrote: > > Am 21.03.25 um 08:58 schrieb Richard Biener: > > On Thu, Mar 20, 2025 at 8:05 PM Georg-Johann Lay via Gcc > > wrote: > >> > >> For avr, there is no support for shared objects, yet > >> when building libgcc, for each module.o there is als

Re: Remove duplication for the handling of attributes between different frontends

2025-03-18 Thread Richard Biener via Gcc
On Tue, Mar 18, 2025 at 4:49 PM Antoni Boucher via Gcc wrote: > > Hi. > We're trying to remove the duplication of the attributes code between > the C and libgccjit frontend. > The attached patch shows a draft of this attempt that only supports a > few attributes. > Would that kind of approach be a

Re: Pointer semantics in GIMPLE

2025-03-20 Thread Richard Biener via Gcc
On Thu, Mar 20, 2025 at 2:05 AM Krister Walfridsson via Gcc wrote: > > I'm working on ensuring that the GIMPLE semantics used by smtgcc are > correct, and I have a lot of questions about the details. I'll be sending > a series of emails with these questions. This first one is about pointers > in g

Re: COBOL: Call to builtin_decl_explicit (BUILT_IN_EXIT), is optimized away.

2025-04-05 Thread Richard Biener via Gcc
On Fri, Apr 4, 2025 at 12:17 AM Robert Dubner wrote: > > The COBOL compiler has this routine: > > void > gg_exit(tree exit_code) > { > tree the_call = > build_call_expr_loc(location_from_lineno(), > builtin_decl_explicit (BUILT_IN_EXIT), >

Re: Does gcc have different inlining heuristics on different platforms?

2025-04-05 Thread Richard Biener via Gcc
On Mon, Mar 31, 2025 at 3:14 PM Julian Waters wrote: > > Thanks for the quick reply, I'll ask the people responsible for > working on the Linux parts try to compile and link the codebase with > -fno-use-linker-plugin to see what happens. It's a bit disheartening > to hear that LTO support on Windo

Re: 'TREE_READONLY' for 'const' array in C vs. C++

2025-04-01 Thread Richard Biener via Gcc
On Tue, Apr 1, 2025 at 12:04 AM Thomas Schwinge wrote: > > Hi! > > In Nvidia PTX, "A state space is a storage area with particular > characteristics. All variables reside in some state space. [...]". > These include: > > .const Shared, read-only memory. > .global Global memory, shared

Re: Does gcc have different inlining heuristics on different platforms?

2025-04-01 Thread Richard Biener via Gcc
On Mon, Mar 31, 2025 at 9:15 PM Eric Botcazou wrote: > > > You can see what -fuse-linker-plugin says, what gcc/auto-host.h contains > > for HAVE_LTO_PLUGIN. I don't know whether the BFD linker (or mold) > > supports linker plugins on windows. I do know that libiberty simple-object > > does not s

GCC 15.0.1 Status Report (2025-04-17), branch frozen for release

2025-04-17 Thread Richard Biener via Gcc
We have branched for the GCC 15 release. All changes on the releases/gcc-15 branch require release manager approval now. Quality Data Priority # Change from last report --- --- P1 - 17 P2 580- 2

GCC 16.0.0 Status Report (2025-04-17)

2025-04-17 Thread Richard Biener via Gcc
Status == We have reached zero P1 regressions and branched for the GCC 15 release. This leaves trunk which is to become GCC 16 next year open for general development, Stage 1, again. Please refrain from disrupting git master too much so that last-minute fixes for GCC 15.1 can be staged there

Re: [PATCH] Do not apply store motion on loop with no exits.

2025-04-28 Thread Richard Biener via Gcc
On Fri, Apr 25, 2025 at 2:31 PM ywgrit via Gcc wrote: > > I encountered one problem with loop-im pass. > I compiled the program dhry2reg which belongs to unixbench( > https://github.com/kdlucas/byte-unixbench). > > The gcc used > gcc (GCC) 12.3.0 > > The commands executed as following > make > ./R

GCC 14.2.1 Status Report (2025-04-28)

2025-04-28 Thread Richard Biener via Gcc
Status == The GCC 14 branch is open for regression and documentation fixes. We are planning for the GCC 14.3 release on May 22th which means scheduling a release candidate on May 15th in about two weeks from now. Please work through your assigned bugs and regression fixes and backport fixes

GCC 13.3.1 Status Report (2025-04-28)

2025-04-28 Thread Richard Biener via Gcc
Status == The gcc-13 branch is open for regression and documentation fixes. It's time to plan for the GCC 13.4 release following the planned GCC 14.3 release. The plan is to do a release candidate for GCC 13.4 on Thursday, May 29th, one week after the GCC 14.3 release followed by the relase

Re: GCC for C6x DSPs

2025-02-18 Thread Richard Biener via Gcc
On Tue, Feb 18, 2025 at 7:10 AM Dan via Gcc wrote: > > Hello! > > I'm trying to compile for Texas Instruments (TI) C6000 Digital Signal > Processor (DSP) using GCC. I'm aware that TI has its own compiler, but I > want to use GCC. > > The documentation indicates that GCC has *some* support for C6x

Re: memory model, READ_ONCE

2025-02-27 Thread Richard Biener via Gcc
On Fri, Feb 28, 2025 at 8:01 AM Martin Uecker wrote: > > > Hi all, > > one area where the Linux kernel people are unhappy with C's > memory model is where they now have to use the READ_ONCE, > WRITE_ONCE macros. These are cases where they do not want > a compiler to duplicate a load, e.g. to relo

Re: memory model, READ_ONCE

2025-02-28 Thread Richard Biener via Gcc
> Am 28.02.2025 um 20:02 schrieb Martin Uecker : > > Am Freitag, dem 28.02.2025 um 21:39 +0300 schrieb Alexander Monakov: >>> On Fri, 28 Feb 2025, Martin Uecker via Gcc wrote: >>> >>> >>> I have one follow-up question: What is the reason >>> that we have stronger semantics for stores by def

Re: memory model, READ_ONCE

2025-03-01 Thread Richard Biener via Gcc
> Am 01.03.2025 um 15:24 schrieb Martin Uecker : > > Am Samstag, dem 01.03.2025 um 16:52 +0300 schrieb Alexander Monakov: >>> On Sat, 1 Mar 2025, Martin Uecker via Gcc wrote: >>> >>> Sorry for being a bit slow. This is still not clear to me. >>> >>> In vect/pr65206.c the following loop can

Re: 22% degradation seen in embench:matmult-int

2025-02-13 Thread Richard Biener via Gcc
On Thu, Feb 13, 2025 at 9:30 PM wrote: > > > > “the interchanged loop might for example no longer vectorize.” > > > > The loops are not vectorized. Which is ok, because this device doesn’t have > the support for it. > > I just don’t think a pass could single handedly make code slower that much.

GCC 15.0.1 Status Report (2025-02-27), Stage 4 still in effect

2025-02-27 Thread Richard Biener via Gcc
Status == The GCC development branch which will become GCC 15 is still in stage4, open for regression and documentation fixes only. We've been in this stage for 6 weeks now and are slowly progressing towards a release. Besides of tackling the remaining P1 bugs also have an eye on the testsui

Re: Memory access in GIMPLE

2025-04-02 Thread Richard Biener via Gcc
On Thu, Apr 3, 2025 at 2:23 AM Krister Walfridsson via Gcc wrote: > > I have more questions about GIMPLE memory semantics for smtgcc. > > As before, each section starts with a description of the semantics I've > implemented (or plan to implement), followed by concrete questions if > relevant. Let

Re: Memory access in GIMPLE

2025-04-04 Thread Richard Biener via Gcc
On Fri, Apr 4, 2025 at 3:37 AM Krister Walfridsson wrote: > > On Thu, 3 Apr 2025, Richard Biener wrote: > > > On Thu, Apr 3, 2025 at 2:23 AM Krister Walfridsson via Gcc > > wrote: > >> > >> I have more questions about GIMPLE memory semantics for smtgcc. > >> > >> As before, each section starts wi

Re: COBOL: Call to builtin_decl_explicit (BUILT_IN_EXIT), is optimized away.

2025-04-04 Thread Richard Biener via Gcc
On Fri, Apr 4, 2025 at 3:06 PM Robert Dubner wrote: > > This program exhibits the behavior when compiled with -O2, -O3 and -OS > > PROGRAM-ID. PROG. > PROCEDUREDIVISION. > MOVE 1 TO RETURN-CODE > STOP RUN. Hmm, the call to exit() is still in the progra

Re: COBOL: Call to builtin_decl_explicit (BUILT_IN_EXIT), is optimized away.

2025-04-04 Thread Richard Biener via Gcc
On Fri, Apr 4, 2025 at 3:35 PM Richard Biener wrote: > > On Fri, Apr 4, 2025 at 3:06 PM Robert Dubner wrote: > > > > This program exhibits the behavior when compiled with -O2, -O3 and -OS > > > > PROGRAM-ID. PROG. > > PROCEDUREDIVISION. > > MOVE 1 TO RETURN-CO

Re: Does gcc have different inlining heuristics on different platforms?

2025-04-04 Thread Richard Biener via Gcc
On Mon, Mar 31, 2025 at 1:20 PM Julian Waters via Gcc wrote: > > Hi all, > > I've been trying to chase down an issue that's been driving me insane > for a while now. It has to do with the flatten attribute being > combined with LTO. I've heard that flatten and LTO are a match made in > hell (Someo

Re: Testing for prototypes generated from Fortran

2025-05-11 Thread Richard Biener via Gcc
On Sun, May 11, 2025 at 8:38 PM Harald Anlauf wrote: > > Hi Thomas, > > Am 11.05.25 um 12:51 schrieb Thomas Koenig via Gcc: > > Hi Harald, > > > >> Hi Thomas, > >> > >> On 5/11/25 10:34, Thomas Koenig via Gcc wrote: > >>> As PR120139 has shown (again), it is too easy to create regressions > >>> fo

Re: Question About GPU-Powered Parallel Compilation in GCC

2025-05-13 Thread Richard Biener via Gcc
On Tue, May 13, 2025 at 12:51 PM Andrew Stubbs wrote: > > On 12/05/2025 15:27, Nikhil Patil via Gcc wrote: > > Hi Richard, > > > > Thank you so much for the reply! > > > > You're absolutely right about using CPU threads. I’m just really curious > > about whether GPU acceleration could somehow be e

Re: Question About GPU-Powered Parallel Compilation in GCC

2025-05-12 Thread Richard Biener via Gcc
On Mon, May 12, 2025 at 2:55 PM Nikhil Patil via Gcc wrote: > > Hi GCC Team, > > I'm fairly new to the world of compilers and trying to understand how they > work in more depth. Recently, I started exploring the idea of *parallelizing > the internal steps of compilation* — such as parsing, code ge

Re: Question for maintainers: ARCv3 port feasibility

2025-05-15 Thread Richard Biener via Gcc
On Thu, May 15, 2025 at 6:43 PM Andrew Stubbs wrote: > > Dear GCC Maintainers and Steering Committee, > > I'm currently doing a feasibility study and effort estimate for > upstreaming the existing ARCv3 out-of-tree port [1]. > > Question: Is there likely to be any objection to adding a new "arc64"

GCC 14.2.1 Status Report (2025-05-15), branch frozen for release

2025-05-15 Thread Richard Biener via Gcc
Status == The GCC 14 branch is now frozen for the GCC 14.3 release, a release candidate is being prepared. All changes to the branch require release manager approval. Previous Report === https://gcc.gnu.org/pipermail/gcc/2025-April/245990.html

GCC 14.3 Release Candidate available from gcc.gnu.org

2025-05-15 Thread Richard Biener via Gcc
The first release candidate for GCC 14.3 is available from https://gcc.gnu.org/pub/gcc/snapshots/14.3.0-RC-20250515/ ftp://gcc.gnu.org/pub/gcc/snapshots/14.3.0-RC-20250515/ and shortly its mirrors. It has been generated from git commit r14-11789-gaa4cd614456de6. I have so far bootstrapped and

Re: Use of register keyword for Globals

2025-05-23 Thread Richard Biener via Gcc
> Am 23.05.2025 um 17:06 schrieb Joel Sherrill via Gcc : > > Hi > > In the SPARC port of RTEMS, there is a global variable assigned to a > register for performance reasons. This is the near decade old line of code: > > register struct Per_CPU_Control *_SPARC_Per_CPU_current __asm__( "g6" );

GCC 14.3 Released

2025-05-23 Thread Richard Biener via Gcc
The GNU Compiler Collection version 14.3 has been released. GCC 14.3 is a bug-fix release from the GCC 14 branch containing important fixes for regressions and serious bugs in GCC 14.2 with more than 211 bugs fixed since the previous release. This release is available from the FTP servers listed

GCC 14.3.1 Status Report (2025-05-23)

2025-05-23 Thread Richard Biener via Gcc
Status == The GCC 14 branch is open again for regression and documentation fixes. Quality Data Priority # Change from last report --- --- P10- 1 P2 603- 15 P3 133+ 23 P4

<    3   4   5   6   7   8