[Bug target/76731] [AVX512] _mm512_i32gather_epi32 and other scatter/gather routines have incorrect signature

2017-01-17 Thread vaalfreja at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=76731

Yulia Koval  changed:

   What|Removed |Added

 CC||vaalfreja at gmail dot com

--- Comment #13 from Yulia Koval  ---
Created attachment 40528
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=40528&action=edit
Patch with builtin changes

I added builtin types changes to Jakub's patch. Does it fix the issue?

[Bug testsuite/68457] New: make check RUNTESTFLAGS="--outdir=$OUT_PATH" does not work with -j

2015-11-20 Thread vaalfreja at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68457

Bug ID: 68457
   Summary: make check RUNTESTFLAGS="--outdir=$OUT_PATH" does not
work with -j
   Product: gcc
   Version: 5.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: testsuite
  Assignee: unassigned at gcc dot gnu.org
  Reporter: vaalfreja at gmail dot com
  Target Milestone: ---

Only gcc.sum from the first thread is copied in the $OUT_PATH, if make check is
used with -j $COUNT.

Here is the log:
# of expected passes1492
# of unexpected failures16
# of expected failures  6
# of unresolved testcases   2
# of unsupported tests  36
/gcc_trunk_64bit/gcc/xgcc  version 6.0.0 20151022 (experimental) (GCC)

make[3]: Leaving directory `/gcc_trunk_64bit/gcc'
mv: cannot stat ‘testsuite/gcc/gcc.sum’: No such file or directory
mv: cannot stat ‘testsuite/gcc1/gcc.sum’: No such file or directory
mv: cannot stat ‘testsuite/gcc1/gcc.log’: No such file or directory
mv: cannot stat ‘testsuite/gcc2/gcc.sum’: No such file or directory
mv: cannot stat ‘testsuite/gcc2/gcc.log’: No such file or directory
mv: cannot stat ‘testsuite/gcc3/gcc.sum’: No such file or directory
mv: cannot stat ‘testsuite/gcc3/gcc.log’: No such file or directory
mv: cannot stat ‘testsuite/gcc4/gcc.sum’: No such file or directory
mv: cannot stat ‘testsuite/gcc4/gcc.log’: No such file or directory
mv: cannot stat ‘testsuite/gcc5/gcc.sum’: No such file or directory
mv: cannot stat ‘testsuite/gcc5/gcc.log’: No such file or directory
mv: cannot stat ‘testsuite/gcc6/gcc.sum’: No such file or directory
mv: cannot stat ‘testsuite/gcc6/gcc.log’: No such file or directory
mv: cannot stat ‘testsuite/gcc7/gcc.sum’: No such file or directory
mv: cannot stat ‘testsuite/gcc7/gcc.log’: No such file or directory
mv: cannot stat ‘testsuite/gcc8/gcc.sum’: No such file or directory
mv: cannot stat ‘testsuite/gcc8/gcc.log’: No such file or directory
mv: cannot stat ‘testsuite/gcc9/gcc.sum’: No such file or directory
mv: cannot stat ‘testsuite/gcc9/gcc.log’: No such file or directory
mv: cannot stat ‘testsuite/gcc10/gcc.sum’: No such file or directory
mv: cannot stat ‘testsuite/gcc10/gcc.log’: No such file or directory
mv: cannot stat ‘testsuite/gcc11/gcc.sum’: No such file or directory
mv: cannot stat ‘testsuite/gcc11/gcc.log’: No such file or directory
mv: cannot stat ‘testsuite/gcc12/gcc.sum’: No such file or directory
mv: cannot stat ‘testsuite/gcc12/gcc.log’: No such file or directory
mv: cannot stat ‘testsuite/gcc13/gcc.sum’: No such file or directory
mv: cannot stat ‘testsuite/gcc13/gcc.log’: No such file or directory
mv: cannot stat ‘testsuite/gcc14/gcc.sum’: No such file or directory
mv: cannot stat ‘testsuite/gcc14/gcc.log’: No such file or directory
mv: cannot stat ‘testsuite/gcc15/gcc.sum’: No such file or directory
mv: cannot stat ‘testsuite/gcc15/gcc.log’: No such file or directory
mv: cannot stat ‘testsuite/gcc16/gcc.sum’: No such file or directory
mv: cannot stat ‘testsuite/gcc16/gcc.log’: No such file or directory
mv: cannot stat ‘testsuite/gcc17/gcc.sum’: No such file or directory
mv: cannot stat ‘testsuite/gcc17/gcc.log’: No such file or directory
mv: cannot stat ‘testsuite/gcc18/gcc.sum’: No such file or directory
mv: cannot stat ‘testsuite/gcc18/gcc.log’: No such file or directory
mv: cannot stat ‘testsuite/gcc19/gcc.sum’: No such file or directory
mv: cannot stat ‘testsuite/gcc19/gcc.log’: No such file or directory
mv: cannot stat ‘testsuite/gcc20/gcc.sum’: No such file or directory
mv: cannot stat ‘testsuite/gcc20/gcc.log’: No such file or directory
mv: cannot stat ‘testsuite/gcc21/gcc.sum’: No such file or directory
mv: cannot stat ‘testsuite/gcc21/gcc.log’: No such file or directory
mv: cannot stat ‘testsuite/gcc22/gcc.sum’: No such file or directory
mv: cannot stat ‘testsuite/gcc22/gcc.log’: No such file or directory
mv: cannot stat ‘testsuite/gcc23/gcc.sum’: No such file or directory
mv: cannot stat ‘testsuite/gcc23/gcc.log’: No such file or directory
mv: cannot stat ‘testsuite/gcc24/gcc.sum’: No such file or directory
mv: cannot stat ‘testsuite/gcc24/gcc.log’: No such file or directory
mv: cannot stat ‘testsuite/gcc25/gcc.sum’: No such file or directory
mv: cannot stat ‘testsuite/gcc25/gcc.log’: No such file or directory
mv: cannot stat ‘testsuite/gcc26/gcc.sum’: No such file or directory
mv: cannot stat ‘testsuite/gcc26/gcc.log’: No such file or directory
mv: cannot stat ‘testsuite/gcc27/gcc.sum’: No such file or directory
mv: cannot stat ‘testsuite/gcc27/gcc.log’: No such file or directory
mv: cannot stat ‘testsuite/gcc28/gcc.sum’: No such file or directory
mv: cannot stat ‘testsuite/gcc28/gcc.log’: No such file or directory
mv: cannot stat ‘testsuite/gcc29/gcc.sum’: No such file or directory
mv: cannot stat ‘testsuite/gcc29/gcc.log’: No such file or directory
mv: cannot stat ‘testsuite/gcc30/gcc.sum’: 

[Bug target/68456] UINT32_TYPE is long unsigned for 32bit targets

2015-11-20 Thread vaalfreja at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68456

--- Comment #3 from Yulia Koval  ---
I agree, that %u usage is not a bug, but it still looks strange..

For gcc --target=i586-elf  macro has:
#define __UINT32_TYPE__ long unsigned int

For non-target gcc or gcc --target=i586-unknown-linux it has:
#define __UINT32_TYPE__ unsigned int

And this behaviour is changed by a header, called "newlib-stdint"..

[Bug target/68456] UINT32_TYPE has different type for i586-elf and for i586-unknown-linux

2015-11-24 Thread vaalfreja at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68456

Yulia Koval  changed:

   What|Removed |Added

 Status|RESOLVED|UNCONFIRMED
 Resolution|INVALID |---
Summary|UINT32_TYPE is long |UINT32_TYPE has different
   |unsigned for 32bit targets  |type for i586-elf and for
   ||i586-unknown-linux

--- Comment #6 from Yulia Koval  ---
> The types used in GCC are intended to be consistent with what the libc's 
> own headers do (lots of problems will arise if they aren't).  Newlib's 
> headers, as of when this support was added to GCC, used long in that case, 
> a use introduced by , 
> apparently because it was convenient for the newlib implementation at that 
> time.


And why newlib-stdint header is used in this case? I haven't used any
newlib-related options in configure. These targets still have different types
for UINT32_TYPE.

[Bug other/68618] New: interrupt fails on ICE in some call cases with miamcu with -O2/3

2015-11-30 Thread vaalfreja at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68618

Bug ID: 68618
   Summary: interrupt fails on ICE in some call cases with miamcu
with -O2/3
   Product: gcc
   Version: 6.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: other
  Assignee: unassigned at gcc dot gnu.org
  Reporter: vaalfreja at gmail dot com
  Target Milestone: ---

Reproduce:
bash-4.2$ cat ../i2.c
struct interrupt_frame;

void (*foo1[1])(int a, int b);

void foo2(int c)
{
foo1[c](1,2);
}

static __attribute__((interrupt)) void my_isr(struct interrupt_frame *frame)
{
int c;
foo2(c);
}


int main()
{
}
bash-4.2$ ./../gcc_trunk_64bit_old_interrupt/install/bin/gcc -m32 -miamcu -O3
-DU ../i2.c
../i2.c: In function ‘foo2’:
../i2.c:8:1: error: unable to find a register to spill
 }
 ^
../i2.c:8:1: error: this is the insn:
(call_insn/j 10 19 11 2 (call (mem:QI (reg/f:SI 91 [90]) [0 *_3 S1 A8])
(const_int 0 [0])) ../i2.c:7 662 {*sibcall}
 (expr_list:REG_DEAD (reg/f:SI 91 [90])
(expr_list:REG_DEAD (reg:SI 1 dx)
(expr_list:REG_DEAD (reg:SI 0 ax)
(expr_list:REG_CALL_DECL (nil)
(nil)
(expr_list:SI (use (reg:SI 0 ax))
(expr_list:SI (use (reg:SI 1 dx))
(nil
../i2.c:8:1: internal compiler error: in assign_by_spills, at
lra-assigns.c:1431
0xa6f4a8 _fatal_insn(char const*, rtx_def const*, char const*, int, char
const*)
.././../TRUNK/gcc6/gcc/rtl-error.c:109
0x970019 assign_by_spills
.././../TRUNK/gcc6/gcc/lra-assigns.c:1431
0x970a53 lra_assign()
.././../TRUNK/gcc6/gcc/lra-assigns.c:1606
0x96c459 lra(_IO_FILE*)
.././../TRUNK/gcc6/gcc/lra.c:2344
0x922919 do_reload
.././../TRUNK/gcc6/gcc/ira.c:5392
0x922919 execute
.././../TRUNK/gcc6/gcc/ira.c:5563
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See <http://gcc.gnu.org/bugs.html> for instructions.

This bug can be fixed with:
diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c
index cb6f8f4..b1523e0 100644
--- a/gcc/config/i386/i386.c
+++ b/gcc/config/i386/i386.c
@@ -5339,8 +5339,8 @@ ix86_set_current_function (tree fndecl)
 reinit_regs ();
   /* AX register is only preserved if there are no caller-saved
  registers.  */
-  else if (cfun->machine->no_caller_saved_registers
-  == call_used_regs[AX_REG])
+  else if ((cfun->machine->no_caller_saved_registers
+  == call_used_regs[AX_REG]) || TARGET_IAMCU)
 reinit_regs ();
 }

However, unconditional calling of reinit_regs is bad.

[Bug target/68618] interrupt fails on ICE in some call cases with miamcu with -O2/3

2015-11-30 Thread vaalfreja at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68618

Yulia Koval  changed:

   What|Removed |Added

 Status|WAITING |RESOLVED
 Resolution|--- |FIXED

--- Comment #2 from Yulia Koval  ---
Works for me.

[Bug target/69225] New: gcc uses double precision instead of single float with -m32 -std=c99 -msoft-float

2016-01-11 Thread vaalfreja at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69225

Bug ID: 69225
   Summary: gcc uses double precision instead of single float with
-m32 -std=c99 -msoft-float
   Product: gcc
   Version: 6.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: target
  Assignee: unassigned at gcc dot gnu.org
  Reporter: vaalfreja at gmail dot com
  Target Milestone: ---

Testcase:
int main(){
float x, y, z;
z = x+y;
return 0;
}

Soft float first extends the result to double precision then truncates it.

[Bug target/69226] Wrong __SIZE_TYPE__/__PTRDIFF_TYPE__/__WCHAR_TYPE__ for IA MCU

2016-01-11 Thread vaalfreja at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69226

--- Comment #3 from Yulia Koval  ---
We can use this patch and fix both this bug and pr68456 for iamcu:

diff --git a/gcc/config/i386/iamcu.h b/gcc/config/i386/iamcu.h
index f143bf9..5ca5c5e 100644
--- a/gcc/config/i386/iamcu.h
+++ b/gcc/config/i386/iamcu.h
@@ -55,6 +55,9 @@ see the files COPYING3 and COPYING.RUNTIME respectively.  If
not, see
#undef LINK_GCC_C_SEQUENCE_SPEC
#define LINK_GCC_C_SEQUENCE_SPEC "%{!miamcu-fp-libgcc:-lsoftfp %G %L %G}
%{miamcu-fp-libgcc:%G %L %G}"

+#undef STDINT_LONG32
+#define STDINT_LONG32 0
+
/* A C statement (sans semicolon) to output to the stdio stream
FILE the assembler definition of uninitialized global DECL named
NAME whose size is SIZE bytes and alignment is ALIGN bytes.

[Bug target/69226] Wrong __SIZE_TYPE__/__PTRDIFF_TYPE__/__WCHAR_TYPE__ for IA MCU

2016-01-12 Thread vaalfreja at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69226

--- Comment #6 from Yulia Koval  ---
Works for me.