This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Make vectorizer testcases more robust wrt inliner


Hi,
I would like to commit patch to enable inlining of very small functions
at -O2 that was approved a while ago but at that time required
workaround of bug that didn't make me feel confident to commit it and I
eventually forgot about it.

Now the patch is causing quite few vectorizer failures.  Those failures
are always caused by inliner inlininig the loop to be vectorized
increasing number of vectorized loops in the program making the pattern
matching in .vect file to fail.

I ended up adding ((noinline)) attribute to those functions (and all
similar in the testsuite) instead of using -fno-inline-small-function
for whole gcc.dg/vect directory since I think we can eventually drop in
less artifical testcases that will want to be tested with default
compiler behaviour whatever it will be.

We will probably also want the noinline or similar attribute to disable
clonning optimizations so the IPA passes don't make life of vectorizer
too easy on those artifical testcases.

Regtested x86_64-linux with and without the inlining patch, OK?

Honza

	* gcc.dg/vect/vect-reduc-dot-s16b.c: Mark functions noinline
	* gcc.dg/vect/vect-105.c: Mark functions noinline
	* gcc.dg/vect/vect-reduc-6.c: Mark functions noinline
	* gcc.dg/vect/no-vfa-vect-53.c: Mark functions noinline
	* gcc.dg/vect/wrapv-vect-reduc-2short.c: Mark functions noinline
	* gcc.dg/vect/fast-math-vect-pr29925.c: Mark functions noinline
	* gcc.dg/vect/vect-reduc-dot-u8a.c: Mark functions noinline
	* gcc.dg/vect/vect-iv-7.c: Mark functions noinline
	* gcc.dg/vect/vect-50.c: Mark functions noinline
	* gcc.dg/vect/vect-33.c: Mark functions noinline
	* gcc.dg/vect/vect-16.c: Mark functions noinline
	* gcc.dg/vect/vect-widen-mult-sum.c: Mark functions noinline
	* gcc.dg/vect/vect-float-extend-1.c: Mark functions noinline
	* gcc.dg/vect/vect-92.c: Mark functions noinline
	* gcc.dg/vect/vect-75.c: Mark functions noinline
	* gcc.dg/vect/vect-58.c: Mark functions noinline
	* gcc.dg/vect/vect-outer-2b.c: Mark functions noinline
	* gcc.dg/vect/vect-outer-4.c: Mark functions noinline
	* gcc.dg/vect/no-scevccp-outer-7.c: Mark functions noinline
	* gcc.dg/vect/no-section-anchors-vect-69.c: Mark functions noinline
	* gcc.dg/vect/vect-114.c: Mark functions noinline
	* gcc.dg/vect/vect-outer-4g.c: Mark functions noinline
	* gcc.dg/vect/vect-8.c: Mark functions noinline
	* gcc.dg/vect/no-scevccp-vect-iv-1.c: Mark functions noinline
	* gcc.dg/vect/no-scevccp-outer-10.c: Mark functions noinline
	* gcc.dg/vect/no-vfa-vect-45.c: Mark functions noinline
	* gcc.dg/vect/no-scevccp-outer-10a.c: Mark functions noinline
	* gcc.dg/vect/vect-multitypes-5.c: Mark functions noinline
	* gcc.dg/vect/no-scevccp-outer-18.c: Mark functions noinline
	* gcc.dg/vect/vect-42.c: Mark functions noinline
	* gcc.dg/vect/vect-25.c: Mark functions noinline
	* gcc.dg/vect/vect-vfa-01.c: Mark functions noinline
	* gcc.dg/vect/vect-67.c: Mark functions noinline
	* gcc.dg/vect/vect-outer-3a.c: Mark functions noinline
	* gcc.dg/vect/vect-strided-a-u16-mult.c: Mark functions noinline
	* gcc.dg/vect/vect-106.c: Mark functions noinline
	* gcc.dg/vect/vect-reduc-7.c: Mark functions noinline
	* gcc.dg/vect/no-vfa-vect-37.c: Mark functions noinline
	* gcc.dg/vect/vect-reduc-2short.c: Mark functions noinline
	* gcc.dg/vect/vect-reduc-dot-u8b.c: Mark functions noinline
	* gcc.dg/vect/vect-iv-8.c: Mark functions noinline
	* gcc.dg/vect/no-vfa-vect-79.c: Mark functions noinline
	* gcc.dg/vect/vect-34.c: Mark functions noinline
	* gcc.dg/vect/vect-17.c: Mark functions noinline
	* gcc.dg/vect/no-vfa-vect-102a.c: Mark functions noinline
	* gcc.dg/vect/vect-align-1.c: Mark functions noinline
	* gcc.dg/vect/vect-93.c: Mark functions noinline
	* gcc.dg/vect/vect-widen-mult-s16.c: Mark functions noinline
	* gcc.dg/vect/vect-76.c: Mark functions noinline
	* gcc.dg/vect/vect-strided-a-u16-i2.c: Mark functions noinline
	* gcc.dg/vect/vect-outer-2c.c: Mark functions noinline
	* gcc.dg/vect/vect-outer-5.c: Mark functions noinline
	* gcc.dg/vect/no-scevccp-outer-8.c: Mark functions noinline
	* gcc.dg/vect/vect-115.c: Mark functions noinline
	* gcc.dg/vect/vect-9.c: Mark functions noinline
	* gcc.dg/vect/no-scevccp-vect-iv-2.c: Mark functions noinline
	* gcc.dg/vect/vect-reduc-pattern-1a.c: Mark functions noinline
	* gcc.dg/vect/no-scevccp-outer-11.c: Mark functions noinline
	* gcc.dg/vect/no-scevccp-outer-10b.c: Mark functions noinline
	* gcc.dg/vect/vect-strided-u32-i4.c: Mark functions noinline
	* gcc.dg/vect/vect-widen-mult-u8.c: Mark functions noinline
	* gcc.dg/vect/vect-multitypes-6.c: Mark functions noinline
	* gcc.dg/vect/no-scevccp-outer-19.c: Mark functions noinline
	* gcc.dg/vect/vect-60.c: Mark functions noinline
	* gcc.dg/vect/vect-26.c: Mark functions noinline
	* gcc.dg/vect/vect-vfa-02.c: Mark functions noinline
	* gcc.dg/vect/vect-85.c: Mark functions noinline
	* gcc.dg/vect/vect-68.c: Mark functions noinline
	* gcc.dg/vect/vect-outer-3b.c: Mark functions noinline
	* gcc.dg/vect/vect-floatint-conversion-1.c: Mark functions noinline
	* gcc.dg/vect/vect-strided-u8-i8-gap7.c: Mark functions noinline
	* gcc.dg/vect/vect-reduc-8.c: Mark functions noinline
	* gcc.dg/vect/vect-107.c: Mark functions noinline
	* gcc.dg/vect/vect-iv-1.c: Mark functions noinline
	* gcc.dg/vect/no-scevccp-outer-20.c: Mark functions noinline
	* gcc.dg/vect/vect-iv-9.c: Mark functions noinline
	* gcc.dg/vect/vect-52.c: Mark functions noinline
	* gcc.dg/vect/vect-35.c: Mark functions noinline
	* gcc.dg/vect/vect-18.c: Mark functions noinline
	* gcc.dg/vect/vect-align-2.c: Mark functions noinline
	* gcc.dg/vect/no-scevccp-outer-1.c: Mark functions noinline
	* gcc.dg/vect/vect-77.c: Mark functions noinline
	* gcc.dg/vect/vect-2.c: Mark functions noinline
	* gcc.dg/vect/vect-outer-2d.c: Mark functions noinline
	* gcc.dg/vect/vect-outer-6.c: Mark functions noinline
	* gcc.dg/vect/vect-82_64.c: Mark functions noinline
	* gcc.dg/vect/no-scevccp-outer-9.c: Mark functions noinline
	* gcc.dg/vect/vect-strided-u8-i2-gap.c: Mark functions noinline
	* gcc.dg/vect/vect-116.c: Mark functions noinline
	* gcc.dg/vect/vect-strided-store-u16-i4.c: Mark functions noinline
	* gcc.dg/vect/no-scevccp-vect-iv-3.c: Mark functions noinline
	* gcc.dg/vect/vect-reduc-pattern-1b.c: Mark functions noinline
	* gcc.dg/vect/wrapv-vect-reduc-dot-s8b.c: Mark functions noinline
	* gcc.dg/vect/no-scevccp-outer-12.c: Mark functions noinline
	* gcc.dg/vect/vect-multitypes-7.c: Mark functions noinline
	* gcc.dg/vect/no-vfa-vect-101.c: Mark functions noinline
	* gcc.dg/vect/vect-44.c: Mark functions noinline
	* gcc.dg/vect/vect-27.c: Mark functions noinline
	* gcc.dg/vect/vect-vfa-03.c: Mark functions noinline
	* gcc.dg/vect/vect-86.c: Mark functions noinline
	* gcc.dg/vect/vect-100.c: Mark functions noinline
	* gcc.dg/vect/vect-reduc-1.c: Mark functions noinline
	* gcc.dg/vect/vect-outer-3c.c: Mark functions noinline
	* gcc.dg/vect/vect-floatint-conversion-2.c: Mark functions noinline
	* gcc.dg/vect/vect-strided-a-u32-mult.c: Mark functions noinline
	* gcc.dg/vect/vect-strided-u8-i8.c: Mark functions noinline
	* gcc.dg/vect/vect-outer-fir-lb.c: Mark functions noinline
	* gcc.dg/vect/vect-108.c: Mark functions noinline
	* gcc.dg/vect/vect-reduc-9.c: Mark functions noinline
	* gcc.dg/vect/no-scevccp-outer-21.c: Mark functions noinline
	* gcc.dg/vect/vect-iv-2.c: Mark functions noinline
	* gcc.dg/vect/vect-reduc-pattern-2a.c: Mark functions noinline
	* gcc.dg/vect/vect-11.c: Mark functions noinline
	* gcc.dg/vect/vect-70.c: Mark functions noinline
	* gcc.dg/vect/vect-36.c: Mark functions noinline
	* gcc.dg/vect/vect-19.c: Mark functions noinline
	* gcc.dg/vect/vect-95.c: Mark functions noinline
	* gcc.dg/vect/vect-78.c: Mark functions noinline
	* gcc.dg/vect/vect-strided-a-u16-i4.c: Mark functions noinline
	* gcc.dg/vect/vect-3.c: Mark functions noinline
	* gcc.dg/vect/vect-all.c: Mark functions noinline
	* gcc.dg/vect/vect-117.c: Mark functions noinline
	* gcc.dg/vect/no-scevccp-outer-13.c: Mark functions noinline
	* gcc.dg/vect/vect-reduc-pattern-1c.c: Mark functions noinline
	* gcc.dg/vect/vect-strided-u16-i2.c: Mark functions noinline
	* gcc.dg/vect/vect-strided-a-u8-i8-gap7.c: Mark functions noinline
	* gcc.dg/vect/vect-20.c: Mark functions noinline
	* gcc.dg/vect/vect-multitypes-8.c: Mark functions noinline
	* gcc.dg/vect/no-scevccp-noreassoc-outer-1.c: Mark functions noinline
	* gcc.dg/vect/no-vfa-vect-102.c: Mark functions noinline
	* gcc.dg/vect/vect-62.c: Mark functions noinline
	* gcc.dg/vect/vect-28.c: Mark functions noinline
	* gcc.dg/vect/vect-multitypes-10.c: Mark functions noinline
	* gcc.dg/vect/vect-vfa-04.c: Mark functions noinline
	* gcc.dg/vect/vect-87.c: Mark functions noinline
	* gcc.dg/vect/vect-reduc-dot-u16a.c: Mark functions noinline
	* gcc.dg/vect/vect-reduc-2.c: Mark functions noinline
	* gcc.dg/vect/vect-intfloat-conversion-4a.c: Mark functions noinline
	* gcc.dg/vect/vect-109.c: Mark functions noinline
	* gcc.dg/vect/no-scevccp-outer-22.c: Mark functions noinline
	* gcc.dg/vect/no-section-anchors-vect-outer-4h.c: Mark functions noinline
	* gcc.dg/vect/vect-iv-3.c: Mark functions noinline
	* gcc.dg/vect/vect-reduc-pattern-2b.c: Mark functions noinline
	* gcc.dg/vect/vect-reduc-dot-s8a.c: Mark functions noinline
	* gcc.dg/vect/no-vfa-vect-57.c: Mark functions noinline
	* gcc.dg/vect/vect-12.c: Mark functions noinline
	* gcc.dg/vect/vect-71.c: Mark functions noinline
	* gcc.dg/vect/vect-54.c: Mark functions noinline
	* gcc.dg/vect/vect-strided-a-mult.c: Mark functions noinline
	* gcc.dg/vect/no-scevccp-outer-3.c: Mark functions noinline
	* gcc.dg/vect/vect-96.c: Mark functions noinline
	* gcc.dg/vect/vect-reduc-1char.c: Mark functions noinline
	* gcc.dg/vect/vect-110.c: Mark functions noinline
	* gcc.dg/vect/vect-intfloat-conversion-1.c: Mark functions noinline
	* gcc.dg/vect/vect-4.c: Mark functions noinline
	* gcc.dg/vect/vect-strided-store-u32-i2.c: Mark functions noinline
	* gcc.dg/vect/vect-outer-4k.c: Mark functions noinline
	* gcc.dg/vect/vect-multitypes-1.c: Mark functions noinline
	* gcc.dg/vect/vect-strided-mult.c: Mark functions noinline
	* gcc.dg/vect/no-scevccp-outer-14.c: Mark functions noinline
	* gcc.dg/vect/no-vfa-vect-49.c: Mark functions noinline
	* gcc.dg/vect/vect-21.c: Mark functions noinline
	* gcc.dg/vect/vect-multitypes-9.c: Mark functions noinline
	* gcc.dg/vect/no-scevccp-noreassoc-outer-2.c: Mark functions noinline
	* gcc.dg/vect/vect-80.c: Mark functions noinline
	* gcc.dg/vect/vect-63.c: Mark functions noinline
	* gcc.dg/vect/vect-46.c: Mark functions noinline
	* gcc.dg/vect/vect-29.c: Mark functions noinline
	* gcc.dg/vect/vect-strided-u8-i8-gap2.c: Mark functions noinline
	* gcc.dg/vect/vect-multitypes-11.c: Mark functions noinline
	* gcc.dg/vect/vect-88.c: Mark functions noinline
	* gcc.dg/vect/vect-strided-u8-i2.c: Mark functions noinline
	* gcc.dg/vect/vect-reduc-dot-u16b.c: Mark functions noinline
	* gcc.dg/vect/vect-reduc-3.c: Mark functions noinline
	* gcc.dg/vect/vect-83_64.c: Mark functions noinline
	* gcc.dg/vect/vect-intfloat-conversion-4b.c: Mark functions noinline
	* gcc.dg/vect/vect-iv-4.c: Mark functions noinline
	* gcc.dg/vect/vect-reduc-pattern-2c.c: Mark functions noinline
	* gcc.dg/vect/vect-reduc-dot-s8b.c: Mark functions noinline
	* gcc.dg/vect/vect-30.c: Mark functions noinline
	* gcc.dg/vect/vect-13.c: Mark functions noinline
	* gcc.dg/vect/vect-strided-a-u8-i2-gap.c: Mark functions noinline
	* gcc.dg/vect/vect-iv-8a.c: Mark functions noinline
	* gcc.dg/vect/vect-strided-same-dr.c: Mark functions noinline
	* gcc.dg/vect/vect-72.c: Mark functions noinline
	* gcc.dg/vect/vect-38.c: Mark functions noinline
	* gcc.dg/vect/no-scevccp-outer-4.c: Mark functions noinline
	* gcc.dg/vect/vect-widen-mult-u16.c: Mark functions noinline
	* gcc.dg/vect/vect-97.c: Mark functions noinline
	* gcc.dg/vect/vect-111.c: Mark functions noinline
	* gcc.dg/vect/vect-intfloat-conversion-2.c: Mark functions noinline
	* gcc.dg/vect/vect-outer-4d.c: Mark functions noinline
	* gcc.dg/vect/vect-5.c: Mark functions noinline
	* gcc.dg/vect/vect-strided-mult-char-ls.c: Mark functions noinline
	* gcc.dg/vect/vect-strided-store-a-u8-i2.c: Mark functions noinline
	* gcc.dg/vect/vect-outer-4l.c: Mark functions noinline
	* gcc.dg/vect/vect-multitypes-2.c: Mark functions noinline
	* gcc.dg/vect/no-scevccp-outer-15.c: Mark functions noinline
	* gcc.dg/vect/vect-reduc-1short.c: Mark functions noinline
	* gcc.dg/vect/vect-strided-u16-i4.c: Mark functions noinline
	* gcc.dg/vect/vect-strided-u32-i8.c: Mark functions noinline
	* gcc.dg/vect/vect-22.c: Mark functions noinline
	* gcc.dg/vect/no-scevccp-noreassoc-outer-3.c: Mark functions noinline
	* gcc.dg/vect/vect-64.c: Mark functions noinline
	* gcc.dg/vect/vect-89.c: Mark functions noinline
	* gcc.dg/vect/no-tree-dom-vect-bug.c: Mark functions noinline
	* gcc.dg/vect/vect-103.c: Mark functions noinline
	* gcc.dg/vect/no-vfa-vect-51.c: Mark functions noinline
	* gcc.dg/vect/no-vfa-pr29145.c: Mark functions noinline
	* gcc.dg/vect/wrapv-vect-reduc-pattern-2c.c: Mark functions noinline
	* gcc.dg/vect/vect-iv-5.c: Mark functions noinline
	* gcc.dg/vect/vect-reduc-dot-s8c.c: Mark functions noinline
	* gcc.dg/vect/vect-11a.c: Mark functions noinline
	* gcc.dg/vect/vect-31.c: Mark functions noinline
	* gcc.dg/vect/vect-14.c: Mark functions noinline
	* gcc.dg/vect/vect-73.c: Mark functions noinline
	* gcc.dg/vect/vect-56.c: Mark functions noinline
	* gcc.dg/vect/vect-outer-2.c: Mark functions noinline
	* gcc.dg/vect/no-scevccp-outer-5.c: Mark functions noinline
	* gcc.dg/vect/vect-98.c: Mark functions noinline
	* gcc.dg/vect/vect-strided-float.c: Mark functions noinline
	* gcc.dg/vect/vect-intfloat-conversion-3.c: Mark functions noinline
	* gcc.dg/vect/vect-112.c: Mark functions noinline
	* gcc.dg/vect/no-scevccp-outer-9a.c: Mark functions noinline
	* gcc.dg/vect/vect-6.c: Mark functions noinline
	* gcc.dg/vect/no-vfa-vect-43.c: Mark functions noinline
	* gcc.dg/vect/vect-strided-a-u8-i8-gap2.c: Mark functions noinline
	* gcc.dg/vect/vect-outer-4m.c: Mark functions noinline
	* gcc.dg/vect/vect-widen-mult-s8.c: Mark functions noinline
	* gcc.dg/vect/vect-multitypes-3.c: Mark functions noinline
	* gcc.dg/vect/pr25413.c: Mark functions noinline
	* gcc.dg/vect/no-scevccp-outer-16.c: Mark functions noinline
	* gcc.dg/vect/vect-40.c: Mark functions noinline
	* gcc.dg/vect/vect-23.c: Mark functions noinline
	* gcc.dg/vect/no-scevccp-noreassoc-outer-4.c: Mark functions noinline
	* gcc.dg/vect/vect-82.c: Mark functions noinline
	* gcc.dg/vect/vect-65.c: Mark functions noinline
	* gcc.dg/vect/vect-48.c: Mark functions noinline
	* gcc.dg/vect/vect-reduc-dot-s16a.c: Mark functions noinline
	* gcc.dg/vect/vect-strided-u8-i8-gap4.c: Mark functions noinline
	* gcc.dg/vect/vect-104.c: Mark functions noinline
	* gcc.dg/vect/vect-outer-fir.c: Mark functions noinline
	* gcc.dg/vect/vect-iv-6.c: Mark functions noinline
	* gcc.dg/vect/vect-strided-u32-mult.c: Mark functions noinline
	* gcc.dg/vect/vect-32.c: Mark functions noinline
	* gcc.dg/vect/vect-15.c: Mark functions noinline
	* gcc.dg/vect/no-trapping-math-2.c: Mark functions noinline
	* gcc.dg/vect/vect-float-truncate-1.c: Mark functions noinline
	* gcc.dg/vect/vect-91.c: Mark functions noinline
	* gcc.dg/vect/vect-74.c: Mark functions noinline
	* gcc.dg/vect/vect-outer-2a.c: Mark functions noinline
	* gcc.dg/vect/vect-outer-3.c: Mark functions noinline
	* gcc.dg/vect/vect-reduc-2char.c: Mark functions noinline
	* gcc.dg/vect/no-scevccp-outer-6.c: Mark functions noinline
	* gcc.dg/vect/vect-99.c: Mark functions noinline
	* gcc.dg/vect/vect-113.c: Mark functions noinline
	* gcc.dg/vect/no-scevccp-outer-9b.c: Mark functions noinline
	* gcc.dg/vect/vect-outer-4f.c: Mark functions noinline
	* gcc.dg/vect/vect-7.c: Mark functions noinline
	* gcc.dg/vect/no-vfa-vect-61.c: Mark functions noinline
	* gcc.dg/vect/vect-multitypes-4.c: Mark functions noinline
	* gcc.dg/vect/no-scevccp-outer-17.c: Mark functions noinline
	* gcc.dg/vect/vect-24.c: Mark functions noinline
	* gcc.dg/vect/no-scevccp-noreassoc-outer-5.c: Mark functions noinline
	* gcc.dg/vect/vect-83.c: Mark functions noinline
	* gcc.dg/vect/vect-66.c: Mark functions noinline
	* gcc.dg/vect/wrapv-vect-reduc-2char.c: Mark functions noinline

Index: gcc.dg/vect/vect-reduc-dot-s16b.c
===================================================================
*** gcc.dg/vect/vect-reduc-dot-s16b.c	(revision 128072)
--- gcc.dg/vect/vect-reduc-dot-s16b.c	(working copy)
*************** signed short Y[N] __attribute__ ((__alig
*** 13,19 ****
  /* short->short->int dot product.  Should be vectorized on architectures
     supporting vectorized multiplication of two short args with short result,
     e.g "mulv4hi3" and widenning sum */
! int
  foo (int len)
  {
    int i;
--- 13,19 ----
  /* short->short->int dot product.  Should be vectorized on architectures
     supporting vectorized multiplication of two short args with short result,
     e.g "mulv4hi3" and widenning sum */
! __attribute__ ((noinline)) int
  foo (int len)
  {
    int i;
Index: gcc.dg/vect/vect-105.c
===================================================================
*** gcc.dg/vect/vect-105.c	(revision 128072)
--- gcc.dg/vect/vect-105.c	(working copy)
*************** static int a[N][N] = {{1,2,3,11},{4,5,6,
*** 16,21 ****
--- 16,22 ----
  static int b[N][N] = {{17,28,15,23},{0,2,3,24},{4,31,82,25},{29,31,432,256}};
  static int c[N][N] = {{1,2,3,11},{4,9,13,34},{45,67,83,13},{34,45,67,83}};
  
+ __attribute__ ((noinline))
  int main1 (int x) {
    int i,j;
    struct extraction *p;
Index: gcc.dg/vect/vect-reduc-6.c
===================================================================
*** gcc.dg/vect/vect-reduc-6.c	(revision 128072)
--- gcc.dg/vect/vect-reduc-6.c	(working copy)
***************
*** 6,11 ****
--- 6,12 ----
  #define N 16
  #define DIFF 242
  
+ __attribute__ ((noinline))
  int main1 (float x, float max_result)
  {
    int i;
Index: gcc.dg/vect/no-vfa-vect-53.c
===================================================================
*** gcc.dg/vect/no-vfa-vect-53.c	(revision 128072)
--- gcc.dg/vect/no-vfa-vect-53.c	(working copy)
***************
*** 5,10 ****
--- 5,11 ----
  
  #define N 256
  
+ __attribute__ ((noinline))
  void bar (const float *pa, const float *pb, const float *pc) 
  {
    int i;
*************** void bar (const float *pa, const float *
*** 27,33 ****
     vect-52.c is similar to this one with one difference:
          aliasing is not a problem.  */
  
! int
  main1 (int n, float *pb, float *pc)
  {
    float pa[N] __attribute__ ((__aligned__(16)));
--- 28,34 ----
     vect-52.c is similar to this one with one difference:
          aliasing is not a problem.  */
  
! __attribute__ ((noinline)) int
  main1 (int n, float *pb, float *pc)
  {
    float pa[N] __attribute__ ((__aligned__(16)));
Index: gcc.dg/vect/wrapv-vect-reduc-2short.c
===================================================================
*** gcc.dg/vect/wrapv-vect-reduc-2short.c	(revision 128072)
--- gcc.dg/vect/wrapv-vect-reduc-2short.c	(working copy)
***************
*** 6,11 ****
--- 6,12 ----
  #define N 16
  #define DIFF 242
  
+ __attribute__ ((noinline))
  void main1 (short x, short max_result, short min_result)
  {
    int i;
Index: gcc.dg/vect/fast-math-vect-pr29925.c
===================================================================
*** gcc.dg/vect/fast-math-vect-pr29925.c	(revision 128072)
--- gcc.dg/vect/fast-math-vect-pr29925.c	(working copy)
***************
*** 3,8 ****
--- 3,9 ----
  #include <stdlib.h>
  #include "tree-vect.h"
  
+ __attribute__ ((noinline))
  void interp_pitch(float *exc, float *interp, int pitch, int len)
  {
     int i,k;
Index: gcc.dg/vect/vect-reduc-dot-u8a.c
===================================================================
*** gcc.dg/vect/vect-reduc-dot-u8a.c	(revision 128072)
--- gcc.dg/vect/vect-reduc-dot-u8a.c	(working copy)
*************** unsigned char Y[N] __attribute__ ((__ali
*** 21,27 ****
     Widening summation can also be supported by type promotion and non-widening 
     summation (vect_unpack).
     */
! unsigned int
  foo (int len) {
    int i;
    unsigned int result = 0;
--- 21,27 ----
     Widening summation can also be supported by type promotion and non-widening 
     summation (vect_unpack).
     */
! __attribute__ ((noinline)) unsigned int
  foo (int len) {
    int i;
    unsigned int result = 0;
Index: gcc.dg/vect/vect-iv-7.c
===================================================================
*** gcc.dg/vect/vect-iv-7.c	(revision 128072)
--- gcc.dg/vect/vect-iv-7.c	(working copy)
***************
*** 6,12 ****
  #define N 16
  int result[N] = {8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38};
   
! int main1 (int X)
  {  
    int arr[N];
    int k = 3;
--- 6,12 ----
  #define N 16
  int result[N] = {8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38};
   
! __attribute__ ((noinline)) int main1 (int X)
  {  
    int arr[N];
    int k = 3;
Index: gcc.dg/vect/vect-50.c
===================================================================
*** gcc.dg/vect/vect-50.c	(revision 128072)
--- gcc.dg/vect/vect-50.c	(working copy)
***************
*** 5,10 ****
--- 5,11 ----
  
  #define N 256
  
+ __attribute__ ((noinline))
  void bar (float *pa, float *pb, float *pc) 
  {
    int i;
*************** void bar (float *pa, float *pb, float *p
*** 19,25 ****
    return;
  }
  
! int
  main1 (int n, float * __restrict__ pa, float * __restrict__ pb, float * __restrict__ pc)
  {
    int i;
--- 20,26 ----
    return;
  }
  
! __attribute__ ((noinline)) int
  main1 (int n, float * __restrict__ pa, float * __restrict__ pb, float * __restrict__ pc)
  {
    int i;
Index: gcc.dg/vect/vect-33.c
===================================================================
*** gcc.dg/vect/vect-33.c	(revision 128072)
--- gcc.dg/vect/vect-33.c	(working copy)
*************** struct test {
*** 11,16 ****
--- 11,17 ----
  
  extern struct test s;
   
+ __attribute__ ((noinline))
  int main1 ()
  {  
    int i;
Index: gcc.dg/vect/vect-16.c
===================================================================
*** gcc.dg/vect/vect-16.c	(revision 128072)
--- gcc.dg/vect/vect-16.c	(working copy)
***************
*** 6,11 ****
--- 6,12 ----
  #define N 16
  #define DIFF 240
  
+ __attribute__ ((noinline))
  int main1 ()
  {
    int i;
Index: gcc.dg/vect/vect-widen-mult-sum.c
===================================================================
*** gcc.dg/vect/vect-widen-mult-sum.c	(revision 128072)
--- gcc.dg/vect/vect-widen-mult-sum.c	(working copy)
***************
*** 7,13 ****
  #define SUM 0 
   
  /* Require widening-mult or data-unpacking (for the type promotion).  */
! int
  main1 (short *in, int off, short scale, int n)
  {
   int i;
--- 7,13 ----
  #define SUM 0 
   
  /* Require widening-mult or data-unpacking (for the type promotion).  */
! __attribute__ ((noinline)) int
  main1 (short *in, int off, short scale, int n)
  {
   int i;
Index: gcc.dg/vect/vect-float-extend-1.c
===================================================================
*** gcc.dg/vect/vect-float-extend-1.c	(revision 128072)
--- gcc.dg/vect/vect-float-extend-1.c	(working copy)
***************
*** 5,11 ****
  
  #define N 32
  
! int
  main1 ()
  {
    int i;
--- 5,11 ----
  
  #define N 32
  
! __attribute__ ((noinline)) int
  main1 ()
  {
    int i;
Index: gcc.dg/vect/vect-92.c
===================================================================
*** gcc.dg/vect/vect-92.c	(revision 128072)
--- gcc.dg/vect/vect-92.c	(working copy)
*************** float pc[N] __attribute__ ((__aligned__(
*** 17,23 ****
     can use this information (generate prolog and epilog loops
     with known number of iterations, and only if needed).  */
  
! int
  main1 ()
  {
    int i;
--- 17,23 ----
     can use this information (generate prolog and epilog loops
     with known number of iterations, and only if needed).  */
  
! __attribute__ ((noinline)) int
  main1 ()
  {
    int i;
*************** main1 ()
*** 37,43 ****
    return 0;
  }
  
! int
  main2 ()
  {
    int i;
--- 37,43 ----
    return 0;
  }
  
! __attribute__ ((noinline)) int
  main2 ()
  {
    int i;
*************** main2 ()
*** 57,63 ****
    return 0;
  }
  
! int
  main3 (int n)
  {
    int i;
--- 57,63 ----
    return 0;
  }
  
! __attribute__ ((noinline)) int
  main3 (int n)
  {
    int i;
Index: gcc.dg/vect/vect-75.c
===================================================================
*** gcc.dg/vect/vect-75.c	(revision 128072)
--- gcc.dg/vect/vect-75.c	(working copy)
***************
*** 12,17 ****
--- 12,18 ----
  
  int ib[N+OFF] __attribute__ ((__aligned__(16))) = {0, 1, 3, 5, 7, 11, 13, 17, 0, 2, 6, 10, 14, 22, 26, 34};
  
+ __attribute__ ((noinline))
  int main1 (int *ib)
  {
    int i;
Index: gcc.dg/vect/vect-58.c
===================================================================
*** gcc.dg/vect/vect-58.c	(revision 128072)
--- gcc.dg/vect/vect-58.c	(working copy)
***************
*** 5,10 ****
--- 5,11 ----
  
  #define N 256
  
+ __attribute__ ((noinline))
  void bar (float *pa, float *pb, float *pc)
  {
    int i;
*************** void bar (float *pa, float *pb, float *p
*** 25,31 ****
     vect-54.c is similar to this one with one difference:
          the loop bound is known.  */
  
! int
  main1 (int n)
  {
    int i;
--- 26,32 ----
     vect-54.c is similar to this one with one difference:
          the loop bound is known.  */
  
! __attribute__ ((noinline)) int
  main1 (int n)
  {
    int i;
Index: gcc.dg/vect/vect-outer-2b.c
===================================================================
*** gcc.dg/vect/vect-outer-2b.c	(revision 128072)
--- gcc.dg/vect/vect-outer-2b.c	(working copy)
***************
*** 5,11 ****
  #define N 40
  float image[2*N][N][N] __attribute__ ((__aligned__(16)));
  
! void
  foo (){
    int i,j,k;
  
--- 5,11 ----
  #define N 40
  float image[2*N][N][N] __attribute__ ((__aligned__(16)));
  
! __attribute__ ((noinline)) void
  foo (){
    int i,j,k;
  
Index: gcc.dg/vect/vect-outer-4.c
===================================================================
*** gcc.dg/vect/vect-outer-4.c	(revision 128072)
--- gcc.dg/vect/vect-outer-4.c	(working copy)
*************** float out[N];
*** 11,17 ****
  
  /* Outer-loop vectorization.  */
  
! void
  foo (){
    int i,j;
    float diff;
--- 11,17 ----
  
  /* Outer-loop vectorization.  */
  
! __attribute__ ((noinline)) void
  foo (){
    int i,j;
    float diff;
Index: gcc.dg/vect/no-scevccp-outer-7.c
===================================================================
*** gcc.dg/vect/no-scevccp-outer-7.c	(revision 128072)
--- gcc.dg/vect/no-scevccp-outer-7.c	(working copy)
*************** unsigned short in[N];
*** 9,15 ****
  unsigned short coef[N];
  unsigned short a[N];
  
! unsigned int
  foo (short scale){
    int i;
    unsigned short j;
--- 9,15 ----
  unsigned short coef[N];
  unsigned short a[N];
  
! __attribute__ ((noinline)) unsigned int
  foo (short scale){
    int i;
    unsigned short j;
Index: gcc.dg/vect/no-section-anchors-vect-69.c
===================================================================
*** gcc.dg/vect/no-section-anchors-vect-69.c	(revision 128072)
--- gcc.dg/vect/no-section-anchors-vect-69.c	(working copy)
*************** struct test2{
*** 33,38 ****
--- 33,39 ----
  struct test1 tmp1[4];
  struct test2 tmp2[4];
  
+ __attribute__ ((noinline))
  int main1 ()
  {  
    int i,j;
Index: gcc.dg/vect/vect-114.c
===================================================================
*** gcc.dg/vect/vect-114.c	(revision 128072)
--- gcc.dg/vect/vect-114.c	(working copy)
***************
*** 5,11 ****
  
  #define N 16
  
! int
  main1 (void)
  {
    int i;
--- 5,11 ----
  
  #define N 16
  
! __attribute__ ((noinline)) int
  main1 (void)
  {
    int i;
Index: gcc.dg/vect/vect-outer-4g.c
===================================================================
*** gcc.dg/vect/vect-outer-4g.c	(revision 128072)
--- gcc.dg/vect/vect-outer-4g.c	(working copy)
*************** unsigned char arr[N];
*** 11,17 ****
  /* Outer-loop vectorization. */
  /* Not vectorized due to multiple-types in the inner-loop.  */
  
! unsigned int
  foo (){
    int i,j;
    unsigned int diff;
--- 11,17 ----
  /* Outer-loop vectorization. */
  /* Not vectorized due to multiple-types in the inner-loop.  */
  
! __attribute__ ((noinline)) unsigned int
  foo (){
    int i,j;
    unsigned int diff;
*************** foo (){
*** 28,34 ****
    return s;
  }
  
! unsigned int
  bar (int i, unsigned int diff, unsigned short *in)
  {
      int j;
--- 28,34 ----
    return s;
  }
  
! __attribute__ ((noinline)) unsigned int
  bar (int i, unsigned int diff, unsigned short *in)
  {
      int j;
Index: gcc.dg/vect/vect-8.c
===================================================================
*** gcc.dg/vect/vect-8.c	(revision 128072)
--- gcc.dg/vect/vect-8.c	(working copy)
***************
*** 8,13 ****
--- 8,14 ----
  float b[N] = {0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30};
  float a[N];
  
+ __attribute__ ((noinline))
  int main1 (int n)
  {
    int i;
Index: gcc.dg/vect/no-scevccp-vect-iv-1.c
===================================================================
*** gcc.dg/vect/no-scevccp-vect-iv-1.c	(revision 128072)
--- gcc.dg/vect/no-scevccp-vect-iv-1.c	(working copy)
***************
*** 5,11 ****
  
  #define N 26
   
! int main1 (int X)
  {  
    int s = X;
    int i;
--- 5,11 ----
  
  #define N 26
   
! __attribute__ ((noinline)) int main1 (int X)
  {  
    int s = X;
    int i;
Index: gcc.dg/vect/no-scevccp-outer-10.c
===================================================================
*** gcc.dg/vect/no-scevccp-outer-10.c	(revision 128072)
--- gcc.dg/vect/no-scevccp-outer-10.c	(working copy)
***************
*** 8,14 ****
  int a[N];
  int b[N];
  
! int
  foo (int n){
    int i,j;
    int sum,x,y;
--- 8,14 ----
  int a[N];
  int b[N];
  
! __attribute__ ((noinline)) int
  foo (int n){
    int i,j;
    int sum,x,y;
Index: gcc.dg/vect/no-vfa-vect-45.c
===================================================================
*** gcc.dg/vect/no-vfa-vect-45.c	(revision 128072)
--- gcc.dg/vect/no-vfa-vect-45.c	(working copy)
***************
*** 5,10 ****
--- 5,11 ----
  
  #define N 256
  
+ __attribute__ ((noinline))
  void bar (const float *pa, const float *pb, const float *pc) 
  {
    int i;
*************** void bar (const float *pa, const float *
*** 27,33 ****
     vect-44.c is similar to this one with one difference:
          Aliasing is not a problem.  */
  
! int
  main1 (float *pa, float *pb, float *pc)
  {
    int i;
--- 28,34 ----
     vect-44.c is similar to this one with one difference:
          Aliasing is not a problem.  */
  
! __attribute__ ((noinline)) int
  main1 (float *pa, float *pb, float *pc)
  {
    int i;
Index: gcc.dg/vect/no-scevccp-outer-10a.c
===================================================================
*** gcc.dg/vect/no-scevccp-outer-10a.c	(revision 128072)
--- gcc.dg/vect/no-scevccp-outer-10a.c	(working copy)
***************
*** 8,14 ****
  int a[N];
  int b[N];
  
! int
  foo (int n){
    int i,j;
    int sum,x,y;
--- 8,14 ----
  int a[N];
  int b[N];
  
! __attribute__ ((noinline)) int
  foo (int n){
    int i,j;
    int sum,x,y;
Index: gcc.dg/vect/vect-multitypes-5.c
===================================================================
*** gcc.dg/vect/vect-multitypes-5.c	(revision 128072)
--- gcc.dg/vect/vect-multitypes-5.c	(working copy)
***************
*** 5,10 ****
--- 5,11 ----
  
  #define N 32
  
+ __attribute__ ((noinline))
  int main1 ()
  {
    int i;
Index: gcc.dg/vect/no-scevccp-outer-18.c
===================================================================
*** gcc.dg/vect/no-scevccp-outer-18.c	(revision 128072)
--- gcc.dg/vect/no-scevccp-outer-18.c	(working copy)
***************
*** 7,13 ****
  
  int a[N];
  
! int
  foo (){
    int i,j;
    int sum;
--- 7,13 ----
  
  int a[N];
  
! __attribute__ ((noinline)) int
  foo (){
    int i,j;
    int sum;
Index: gcc.dg/vect/vect-42.c
===================================================================
*** gcc.dg/vect/vect-42.c	(revision 128072)
--- gcc.dg/vect/vect-42.c	(working copy)
***************
*** 5,10 ****
--- 5,11 ----
  
  #define N 256
  
+ __attribute__ ((noinline))
  void bar (float *pa, float *pb, float *pc) 
  {
    int i;
*************** void bar (float *pa, float *pb, float *p
*** 25,31 ****
     The loop bound is known and divisible by the vectorization factor.
     No aliasing problems.  */
  
! int
  main1 (float * __restrict__ pa)
  {
    int i;
--- 26,32 ----
     The loop bound is known and divisible by the vectorization factor.
     No aliasing problems.  */
  
! __attribute__ ((noinline)) int
  main1 (float * __restrict__ pa)
  {
    int i;
Index: gcc.dg/vect/vect-25.c
===================================================================
*** gcc.dg/vect/vect-25.c	(revision 128072)
--- gcc.dg/vect/vect-25.c	(working copy)
***************
*** 5,10 ****
--- 5,11 ----
  
  #define N 128
  
+ __attribute__ ((noinline))
  int main1 (int n, int *p)
  {
    int i;
Index: gcc.dg/vect/vect-vfa-01.c
===================================================================
*** gcc.dg/vect/vect-vfa-01.c	(revision 128072)
--- gcc.dg/vect/vect-vfa-01.c	(working copy)
*************** int result[N] = {12, 13, 14, 15, 16, 17,
*** 8,14 ****
  int X[N] = {10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25};
  int Y[N] = {};
   
! void
  foo (int *in, int *out)
  {  
    int i;
--- 8,14 ----
  int X[N] = {10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25};
  int Y[N] = {};
   
! __attribute__ ((noinline)) void
  foo (int *in, int *out)
  {  
    int i;
Index: gcc.dg/vect/vect-67.c
===================================================================
*** gcc.dg/vect/vect-67.c	(revision 128072)
--- gcc.dg/vect/vect-67.c	(working copy)
***************
*** 5,10 ****
--- 5,11 ----
  
  #define N 16
  
+ __attribute__ ((noinline))
  int main1 (int a, int b)
  {
    int i, j;
Index: gcc.dg/vect/vect-outer-3a.c
===================================================================
*** gcc.dg/vect/vect-outer-3a.c	(revision 128072)
--- gcc.dg/vect/vect-outer-3a.c	(working copy)
*************** float out[N];
*** 8,14 ****
  
  /* Outer-loop vectorization with misaliged accesses in the inner-loop.  */
  
! void
  foo (){
    int i,j;
    float diff;
--- 8,14 ----
  
  /* Outer-loop vectorization with misaliged accesses in the inner-loop.  */
  
! __attribute__ ((noinline)) void
  foo (){
    int i,j;
    float diff;
Index: gcc.dg/vect/vect-strided-a-u16-mult.c
===================================================================
*** gcc.dg/vect/vect-strided-a-u16-mult.c	(revision 128072)
--- gcc.dg/vect/vect-strided-a-u16-mult.c	(working copy)
*************** typedef struct {
*** 10,16 ****
     unsigned short b;
  } s;
  
! int
  main1 ()
  {
    s arr[N];
--- 10,16 ----
     unsigned short b;
  } s;
  
! __attribute__ ((noinline)) int
  main1 ()
  {
    s arr[N];
Index: gcc.dg/vect/vect-106.c
===================================================================
*** gcc.dg/vect/vect-106.c	(revision 128072)
--- gcc.dg/vect/vect-106.c	(working copy)
***************
*** 9,14 ****
--- 9,15 ----
  static int a[N] = {1,2,3,4,5,6,7,8,9};
  static int b[N] = {2,3,4,5,6,7,8,9,0};
  
+ __attribute__ ((noinline))
  int main1 () {
    int i;
    int *p, *q, *p1, *q1;
Index: gcc.dg/vect/vect-reduc-7.c
===================================================================
*** gcc.dg/vect/vect-reduc-7.c	(revision 128072)
--- gcc.dg/vect/vect-reduc-7.c	(working copy)
***************
*** 7,13 ****
  extern void abort (void);
  typedef unsigned char T;
  
! void
  testmax (const T *c, T init, T result)
  {
    T lc[N], accum = init;
--- 7,13 ----
  extern void abort (void);
  typedef unsigned char T;
  
! __attribute__ ((noinline)) void
  testmax (const T *c, T init, T result)
  {
    T lc[N], accum = init;
*************** testmax (const T *c, T init, T result)
*** 23,29 ****
      abort ();
  }
  
! void
  testmin (const T *c, T init, T result)
  {
    T lc[N], accum = init;
--- 23,29 ----
      abort ();
  }
  
! __attribute__ ((noinline)) void
  testmin (const T *c, T init, T result)
  {
    T lc[N], accum = init;
Index: gcc.dg/vect/no-vfa-vect-37.c
===================================================================
*** gcc.dg/vect/no-vfa-vect-37.c	(revision 128072)
--- gcc.dg/vect/no-vfa-vect-37.c	(working copy)
***************
*** 6,11 ****
--- 6,12 ----
  #define N 16
  char x[N] __attribute__ ((__aligned__(16)));
   
+ __attribute__ ((noinline))
  int main1 (char *y)
  {  
    struct {
Index: gcc.dg/vect/vect-reduc-2short.c
===================================================================
*** gcc.dg/vect/vect-reduc-2short.c	(revision 128072)
--- gcc.dg/vect/vect-reduc-2short.c	(working copy)
***************
*** 6,11 ****
--- 6,12 ----
  #define N 16
  #define DIFF 242
  
+ __attribute__ ((noinline))
  void main1 (short x, short max_result, short min_result)
  {
    int i;
Index: gcc.dg/vect/vect-reduc-dot-u8b.c
===================================================================
*** gcc.dg/vect/vect-reduc-dot-u8b.c	(revision 128072)
--- gcc.dg/vect/vect-reduc-dot-u8b.c	(working copy)
*************** unsigned char Y[N] __attribute__ ((__ali
*** 18,24 ****
     Alternatively, this test can be vectorized using vect_widen_mult_qi (or
     vect_unpack and non-widening multplication: vect_unpack && vect_short_mult).
     */
! unsigned short
  foo (int len) {
    int i;
    unsigned short result = 0;
--- 18,24 ----
     Alternatively, this test can be vectorized using vect_widen_mult_qi (or
     vect_unpack and non-widening multplication: vect_unpack && vect_short_mult).
     */
! __attribute__ ((noinline)) unsigned short
  foo (int len) {
    int i;
    unsigned short result = 0;
Index: gcc.dg/vect/vect-iv-8.c
===================================================================
*** gcc.dg/vect/vect-iv-8.c	(revision 128072)
--- gcc.dg/vect/vect-iv-8.c	(working copy)
***************
*** 5,11 ****
  
  #define N 26
   
! int main1 (short X)
  {  
    unsigned char a[N];
    unsigned short b[N];
--- 5,11 ----
  
  #define N 26
   
! __attribute__ ((noinline)) int main1 (short X)
  {  
    unsigned char a[N];
    unsigned short b[N];
Index: gcc.dg/vect/no-vfa-vect-79.c
===================================================================
*** gcc.dg/vect/no-vfa-vect-79.c	(revision 128072)
--- gcc.dg/vect/no-vfa-vect-79.c	(working copy)
*************** float fc[N] __attribute__ ((__aligned__(
*** 12,18 ****
  /* Like vect-80.c but the pointers are not annotated as restricted,
     and therefore can't be antialiased.  */
  
! int
  main1 (float *pa, float *pb, float *pc)
  {
    int i;
--- 12,18 ----
  /* Like vect-80.c but the pointers are not annotated as restricted,
     and therefore can't be antialiased.  */
  
! __attribute__ ((noinline)) int
  main1 (float *pa, float *pb, float *pc)
  {
    int i;
Index: gcc.dg/vect/vect-34.c
===================================================================
*** gcc.dg/vect/vect-34.c	(revision 128072)
--- gcc.dg/vect/vect-34.c	(working copy)
***************
*** 5,10 ****
--- 5,11 ----
  
  #define N 16
   
+ __attribute__ ((noinline))
  int main1 ()
  {  
    struct {
Index: gcc.dg/vect/vect-17.c
===================================================================
*** gcc.dg/vect/vect-17.c	(revision 128072)
--- gcc.dg/vect/vect-17.c	(working copy)
***************
*** 5,11 ****
  
  #define N 64
  
! int
  main1 ()
  {
    int i;
--- 5,11 ----
  
  #define N 64
  
! __attribute__ ((noinline)) int
  main1 ()
  {
    int i;
Index: gcc.dg/vect/no-vfa-vect-102a.c
===================================================================
*** gcc.dg/vect/no-vfa-vect-102a.c	(revision 128072)
--- gcc.dg/vect/no-vfa-vect-102a.c	(working copy)
*************** static int a[N] = {1,2,3,4,5,6,7,8,9};
*** 16,21 ****
--- 16,22 ----
  static int b[N] = {2,3,4,5,6,7,8,9,9};
  volatile int foo;
  
+ __attribute__ ((noinline))
  int main1 (int x, int y) {
    int i;
    struct extraction *p;
Index: gcc.dg/vect/vect-align-1.c
===================================================================
*** gcc.dg/vect/vect-align-1.c	(revision 128072)
--- gcc.dg/vect/vect-align-1.c	(working copy)
*************** struct foo {
*** 14,20 ****
    int y[N];
  } __attribute__((packed));
  
! int
  main1 (struct foo * __restrict__ p)
  {
    int i;
--- 14,20 ----
    int y[N];
  } __attribute__((packed));
  
! __attribute__ ((noinline)) int
  main1 (struct foo * __restrict__ p)
  {
    int i;
Index: gcc.dg/vect/vect-93.c
===================================================================
*** gcc.dg/vect/vect-93.c	(revision 128072)
--- gcc.dg/vect/vect-93.c	(working copy)
***************
*** 6,12 ****
  #define N 3001
  
  
! int
  main1 (float *pa)
  {
    int i;
--- 6,12 ----
  #define N 3001
  
  
! __attribute__ ((noinline))
  main1 (float *pa)
  {
    int i;
Index: gcc.dg/vect/vect-widen-mult-s16.c
===================================================================
*** gcc.dg/vect/vect-widen-mult-s16.c	(revision 128072)
--- gcc.dg/vect/vect-widen-mult-s16.c	(working copy)
*************** short Y[N] __attribute__ ((__aligned__(1
*** 10,16 ****
  int result[N];
  
  /* short->int widening-mult */
! int
  foo1(int len) {
    int i;
  
--- 10,16 ----
  int result[N];
  
  /* short->int widening-mult */
! __attribute__ ((noinline)) int
  foo1(int len) {
    int i;
  
Index: gcc.dg/vect/vect-76.c
===================================================================
*** gcc.dg/vect/vect-76.c	(revision 128072)
--- gcc.dg/vect/vect-76.c	(working copy)
***************
*** 12,17 ****
--- 12,18 ----
  
  int ib[N+OFF] __attribute__ ((__aligned__(16))) = {0, 1, 3, 5, 7, 11, 13, 17, 0, 2, 6, 10};
  
+ __attribute__ ((noinline))
  int main1 (int *pib)
  {
    int i;
Index: gcc.dg/vect/vect-strided-a-u16-i2.c
===================================================================
*** gcc.dg/vect/vect-strided-a-u16-i2.c	(revision 128072)
--- gcc.dg/vect/vect-strided-a-u16-i2.c	(working copy)
*************** typedef struct {
*** 10,16 ****
     unsigned short b;
  } s;
  
! int
  main1 ()
  {
    s arr[N];
--- 10,16 ----
     unsigned short b;
  } s;
  
! __attribute__ ((noinline)) int
  main1 ()
  {
    s arr[N];
Index: gcc.dg/vect/vect-outer-2c.c
===================================================================
*** gcc.dg/vect/vect-outer-2c.c	(revision 128072)
--- gcc.dg/vect/vect-outer-2c.c	(working copy)
***************
*** 5,11 ****
  #define N 40
  float image[2*N][2*N][N] __attribute__ ((__aligned__(16)));
  
! void
  foo (){
    int i,j,k;
  
--- 5,11 ----
  #define N 40
  float image[2*N][2*N][N] __attribute__ ((__aligned__(16)));
  
! __attribute__ ((noinline)) void
  foo (){
    int i,j,k;
  
Index: gcc.dg/vect/vect-outer-5.c
===================================================================
*** gcc.dg/vect/vect-outer-5.c	(revision 128072)
--- gcc.dg/vect/vect-outer-5.c	(working copy)
***************
*** 9,14 ****
--- 9,15 ----
  
  extern void abort(void); 
  
+ __attribute__ ((noinline)) 
  int main1 ()
  {  
    float A[N] __attribute__ ((__aligned__(16)));
Index: gcc.dg/vect/no-scevccp-outer-8.c
===================================================================
*** gcc.dg/vect/no-scevccp-outer-8.c	(revision 128072)
--- gcc.dg/vect/no-scevccp-outer-8.c	(working copy)
***************
*** 6,12 ****
  #define N 40
  
  
! int
  foo (int *a){
    int i,j;
    int sum;
--- 6,12 ----
  #define N 40
  
  
! __attribute__ ((noinline)) int
  foo (int *a){
    int i,j;
    int sum;
Index: gcc.dg/vect/vect-115.c
===================================================================
*** gcc.dg/vect/vect-115.c	(revision 128072)
--- gcc.dg/vect/vect-115.c	(working copy)
*************** struct test1{
*** 23,28 ****
--- 23,29 ----
    int l;
  };
  
+ __attribute__ ((noinline))
  int main1 ()
  {
    int i;
Index: gcc.dg/vect/vect-9.c
===================================================================
*** gcc.dg/vect/vect-9.c	(revision 128072)
--- gcc.dg/vect/vect-9.c	(working copy)
***************
*** 5,10 ****
--- 5,11 ----
  
  #define N 16
  
+ __attribute__ ((noinline))
  int main1 ()
  {
    int i;
Index: gcc.dg/vect/no-scevccp-vect-iv-2.c
===================================================================
*** gcc.dg/vect/no-scevccp-vect-iv-2.c	(revision 128072)
--- gcc.dg/vect/no-scevccp-vect-iv-2.c	(working copy)
***************
*** 5,10 ****
--- 5,11 ----
  
  #define N 16
   
+ __attribute__ ((noinline))
  int main1 ()
  {  
    int arr1[N];
Index: gcc.dg/vect/vect-reduc-pattern-1a.c
===================================================================
*** gcc.dg/vect/vect-reduc-pattern-1a.c	(revision 128072)
--- gcc.dg/vect/vect-reduc-pattern-1a.c	(working copy)
*************** unsigned short udata_sh[N] =
*** 8,14 ****
    { 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28 };
  #define SUM 210
  
! int
  foo ()
  {
    int i;
--- 8,14 ----
    { 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28 };
  #define SUM 210
  
! __attribute__ ((noinline)) int
  foo ()
  {
    int i;
Index: gcc.dg/vect/no-scevccp-outer-11.c
===================================================================
*** gcc.dg/vect/no-scevccp-outer-11.c	(revision 128072)
--- gcc.dg/vect/no-scevccp-outer-11.c	(working copy)
***************
*** 7,13 ****
  
  int a[N];
  
! int
  foo (int n){
    int i,j;
    int sum;
--- 7,13 ----
  
  int a[N];
  
! __attribute__ ((noinline)) int
  foo (int n){
    int i,j;
    int sum;
Index: gcc.dg/vect/no-scevccp-outer-10b.c
===================================================================
*** gcc.dg/vect/no-scevccp-outer-10b.c	(revision 128072)
--- gcc.dg/vect/no-scevccp-outer-10b.c	(working copy)
***************
*** 8,14 ****
  int a[N];
  int b[N];
  
! int
  foo (int n){
    int i,j;
    int sum,x,y;
--- 8,14 ----
  int a[N];
  int b[N];
  
! __attribute__ ((noinline)) int
  foo (int n){
    int i,j;
    int sum,x,y;
Index: gcc.dg/vect/vect-strided-u32-i4.c
===================================================================
*** gcc.dg/vect/vect-strided-u32-i4.c	(revision 128072)
--- gcc.dg/vect/vect-strided-u32-i4.c	(working copy)
*************** typedef struct {
*** 12,18 ****
     int d;
  } s;
  
! int
  main1 (s *arr)
  {
    int i;
--- 12,18 ----
     int d;
  } s;
  
! __attribute__ ((noinline)) int
  main1 (s *arr)
  {
    int i;
Index: gcc.dg/vect/vect-widen-mult-u8.c
===================================================================
*** gcc.dg/vect/vect-widen-mult-u8.c	(revision 128072)
--- gcc.dg/vect/vect-widen-mult-u8.c	(working copy)
*************** unsigned char Y[N] __attribute__ ((__ali
*** 10,16 ****
  unsigned short result[N];
  
  /* char->short widening-mult */
! int
  foo1(int len) {
    int i;
  
--- 10,16 ----
  unsigned short result[N];
  
  /* char->short widening-mult */
! __attribute__ ((noinline)) int
  foo1(int len) {
    int i;
  
Index: gcc.dg/vect/vect-multitypes-6.c
===================================================================
*** gcc.dg/vect/vect-multitypes-6.c	(revision 128072)
--- gcc.dg/vect/vect-multitypes-6.c	(working copy)
*************** unsigned char cc[N] __attribute__ ((__al
*** 18,23 ****
--- 18,24 ----
  unsigned char cb[N] __attribute__ ((__aligned__(16))) = 
  	{0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45,0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45};
  
+ __attribute__ ((noinline))
  int main1 (int n, 
  	   unsigned int * __restrict__ pic, unsigned int * __restrict__ pib, 
  	   unsigned short * __restrict__ psc, unsigned short * __restrict__ psb,
Index: gcc.dg/vect/no-scevccp-outer-19.c
===================================================================
*** gcc.dg/vect/no-scevccp-outer-19.c	(revision 128072)
--- gcc.dg/vect/no-scevccp-outer-19.c	(working copy)
***************
*** 8,14 ****
  unsigned short a[N];
  unsigned int b[N];
  
! int
  foo (){
    unsigned short i,j;
    unsigned short sum;
--- 8,14 ----
  unsigned short a[N];
  unsigned int b[N];
  
! __attribute__ ((noinline)) int
  foo (){
    unsigned short i,j;
    unsigned short sum;
Index: gcc.dg/vect/vect-60.c
===================================================================
*** gcc.dg/vect/vect-60.c	(revision 128072)
--- gcc.dg/vect/vect-60.c	(working copy)
***************
*** 5,10 ****
--- 5,11 ----
  
  #define N 256
  
+ __attribute__ ((noinline))
  void bar (float *pa, float *pb, float *pc)
  {
    int i;
*************** void bar (float *pa, float *pb, float *p
*** 29,35 ****
     vect-61.c is similar to this one with two differences:
          aliasing is not a problem, and the write access has unknown alignment.  */
  
! int
  main1 (int n)
  {
    int i;
--- 30,36 ----
     vect-61.c is similar to this one with two differences:
          aliasing is not a problem, and the write access has unknown alignment.  */
  
! __attribute__ ((noinline)) int
  main1 (int n)
  {
    int i;
Index: gcc.dg/vect/vect-26.c
===================================================================
*** gcc.dg/vect/vect-26.c	(revision 128072)
--- gcc.dg/vect/vect-26.c	(working copy)
***************
*** 7,12 ****
--- 7,13 ----
  
  /* unaligned store.  */
  
+ __attribute__ ((noinline))
  int main1 ()
  {
    int i;
Index: gcc.dg/vect/vect-vfa-02.c
===================================================================
*** gcc.dg/vect/vect-vfa-02.c	(revision 128072)
--- gcc.dg/vect/vect-vfa-02.c	(working copy)
*************** int X[N] = {10, 11, 12, 13, 14, 15, 16, 
*** 10,16 ****
  int Y[N] = {};
  int Z[N] = {};
   
! void
  foo (int *in, int *out1, int *out2)
  {
    int i;
--- 10,16 ----
  int Y[N] = {};
  int Z[N] = {};
   
! __attribute__ ((noinline)) void
  foo (int *in, int *out1, int *out2)
  {
    int i;
Index: gcc.dg/vect/vect-85.c
===================================================================
*** gcc.dg/vect/vect-85.c	(revision 128072)
--- gcc.dg/vect/vect-85.c	(working copy)
***************
*** 5,10 ****
--- 5,11 ----
  
  #define N 16
  
+ __attribute__ ((noinline))
  int main1 (int *a)
  {
    int i, j, k;
Index: gcc.dg/vect/vect-68.c
===================================================================
*** gcc.dg/vect/vect-68.c	(revision 128072)
--- gcc.dg/vect/vect-68.c	(working copy)
*************** struct test1{
*** 17,22 ****
--- 17,23 ----
    struct s e; /* array e.n is aligned */
  };
  
+ __attribute__ ((noinline))
  int main1 ()
  {  
    int i,j;
Index: gcc.dg/vect/vect-outer-3b.c
===================================================================
*** gcc.dg/vect/vect-outer-3b.c	(revision 128072)
--- gcc.dg/vect/vect-outer-3b.c	(working copy)
*************** float out[N];
*** 8,14 ****
  
  /* Outer-loop vectorization with non-consecutive access. Not vectorized yet.  */
  
! void
  foo (){
    int i,j;
    float diff;
--- 8,14 ----
  
  /* Outer-loop vectorization with non-consecutive access. Not vectorized yet.  */
  
! __attribute__ ((noinline)) void
  foo (){
    int i,j;
    float diff;
Index: gcc.dg/vect/vect-floatint-conversion-1.c
===================================================================
*** gcc.dg/vect/vect-floatint-conversion-1.c	(revision 128072)
--- gcc.dg/vect/vect-floatint-conversion-1.c	(working copy)
***************
*** 5,11 ****
  
  #define N 32
  
! int
  main1 ()
  {
    int i;
--- 5,11 ----
  
  #define N 32
  
! __attribute__ ((noinline)) int
  main1 ()
  {
    int i;
Index: gcc.dg/vect/vect-strided-u8-i8-gap7.c
===================================================================
*** gcc.dg/vect/vect-strided-u8-i8-gap7.c	(revision 128072)
--- gcc.dg/vect/vect-strided-u8-i8-gap7.c	(working copy)
*************** typedef struct {
*** 16,22 ****
     unsigned char h;
  } s;
  
! int
  main1 (s *arr)
  {
    int i;
--- 16,22 ----
     unsigned char h;
  } s;
  
! __attribute__ ((noinline)) int
  main1 (s *arr)
  {
    int i;
Index: gcc.dg/vect/vect-reduc-8.c
===================================================================
*** gcc.dg/vect/vect-reduc-8.c	(revision 128072)
--- gcc.dg/vect/vect-reduc-8.c	(working copy)
***************
*** 7,13 ****
  extern void abort (void);
  typedef signed char T;
  
! void
  testmax (const T *c, T init, T result)
  {
    T lc[N], accum = init;
--- 7,13 ----
  extern void abort (void);
  typedef signed char T;
  
! __attribute__ ((noinline)) void
  testmax (const T *c, T init, T result)
  {
    T lc[N], accum = init;
*************** testmax (const T *c, T init, T result)
*** 23,29 ****
      abort ();
  }
  
! void
  testmin (const T *c, T init, T result)
  {
    T lc[N], accum = init;
--- 23,29 ----
      abort ();
  }
  
! __attribute__ ((noinline)) void
  testmin (const T *c, T init, T result)
  {
    T lc[N], accum = init;
Index: gcc.dg/vect/vect-107.c
===================================================================
*** gcc.dg/vect/vect-107.c	(revision 128072)
--- gcc.dg/vect/vect-107.c	(working copy)
***************
*** 5,11 ****
  
  #define N 16
  
! int
  main1 (void)
  {
    int i;
--- 5,11 ----
  
  #define N 16
  
! __attribute__ ((noinline)) int
  main1 (void)
  {
    int i;
Index: gcc.dg/vect/vect-iv-1.c
===================================================================
*** gcc.dg/vect/vect-iv-1.c	(revision 128072)
--- gcc.dg/vect/vect-iv-1.c	(working copy)
***************
*** 6,12 ****
  #define N 16
  int result[N] = {8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38};
   
! int main1 (int X)
  {  
    int arr[N];
    int k = X;
--- 6,12 ----
  #define N 16
  int result[N] = {8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38};
   
! __attribute__ ((noinline)) int main1 (int X)
  {  
    int arr[N];
    int k = X;
Index: gcc.dg/vect/no-scevccp-outer-20.c
===================================================================
*** gcc.dg/vect/no-scevccp-outer-20.c	(revision 128072)
--- gcc.dg/vect/no-scevccp-outer-20.c	(working copy)
***************
*** 8,14 ****
  int a[N];
  int b[N];
  
! int
  foo (){
    int i,j;
    int sum,x,y;
--- 8,14 ----
  int a[N];
  int b[N];
  
! __attribute__ ((noinline)) int
  foo (){
    int i,j;
    int sum,x,y;
Index: gcc.dg/vect/vect-iv-9.c
===================================================================
*** gcc.dg/vect/vect-iv-9.c	(revision 128072)
--- gcc.dg/vect/vect-iv-9.c	(working copy)
***************
*** 6,12 ****
  #define N 26
  int a[N];
   
! int main1 (int X)
  {  
    int s = X;
    int i;
--- 6,12 ----
  #define N 26
  int a[N];
   
! __attribute__ ((noinline)) int main1 (int X)
  {  
    int s = X;
    int i;
Index: gcc.dg/vect/vect-52.c
===================================================================
*** gcc.dg/vect/vect-52.c	(revision 128072)
--- gcc.dg/vect/vect-52.c	(working copy)
***************
*** 15,21 ****
     vect-53.c is similar to this one with one difference:
          aliasing is a problem.  */
  
! int
  main1 (int n, float *pb, float *pc)
  {
    float pa[N] __attribute__ ((__aligned__(16)));
--- 15,21 ----
     vect-53.c is similar to this one with one difference:
          aliasing is a problem.  */
  
! __attribute__ ((noinline)) int
  main1 (int n, float *pb, float *pc)
  {
    float pa[N] __attribute__ ((__aligned__(16)));
Index: gcc.dg/vect/vect-35.c
===================================================================
*** gcc.dg/vect/vect-35.c	(revision 128072)
--- gcc.dg/vect/vect-35.c	(working copy)
***************
*** 5,10 ****
--- 5,11 ----
  
  #define N 16
   
+ __attribute__ ((noinline))
  int main1 ()
  {  
    union {
Index: gcc.dg/vect/vect-18.c
===================================================================
*** gcc.dg/vect/vect-18.c	(revision 128072)
--- gcc.dg/vect/vect-18.c	(working copy)
***************
*** 5,11 ****
  
  #define N 64
  
! int
  main1 ()
  {
    int i;
--- 5,11 ----
  
  #define N 64
  
! __attribute__ ((noinline)) int
  main1 ()
  {
    int i;
Index: gcc.dg/vect/vect-align-2.c
===================================================================
*** gcc.dg/vect/vect-align-2.c	(revision 128072)
--- gcc.dg/vect/vect-align-2.c	(working copy)
*************** struct foo {
*** 18,23 ****
--- 18,24 ----
  struct foo f2;
  int z[16] = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};
  
+ __attribute__ ((noinline))
  void fbar(struct foo *fp)
  {
    int i,j;
Index: gcc.dg/vect/no-scevccp-outer-1.c
===================================================================
*** gcc.dg/vect/no-scevccp-outer-1.c	(revision 128072)
--- gcc.dg/vect/no-scevccp-outer-1.c	(working copy)
*************** signed short block[N][N];
*** 6,12 ****
  
  /* memory references in the inner-loop */
  
! unsigned int
  foo (){
    int i,j;
    unsigned int diff = 0;
--- 6,12 ----
  
  /* memory references in the inner-loop */
  
! __attribute__ ((noinline)) unsigned int
  foo (){
    int i,j;
    unsigned int diff = 0;
Index: gcc.dg/vect/vect-77.c
===================================================================
*** gcc.dg/vect/vect-77.c	(revision 128072)
--- gcc.dg/vect/vect-77.c	(working copy)
***************
*** 12,17 ****
--- 12,18 ----
  
  int ib[N+OFF] __attribute__ ((__aligned__(16))) = {0, 1, 3, 5, 7, 11, 13, 17, 0, 2, 6, 10, 14, 22, 26, 34};
  
+ __attribute__ ((noinline))
  int main1 (int *ib, int off)
  {
    int i;
Index: gcc.dg/vect/vect-2.c
===================================================================
*** gcc.dg/vect/vect-2.c	(revision 128072)
--- gcc.dg/vect/vect-2.c	(working copy)
***************
*** 4,10 ****
  #include "tree-vect.h"
  
  #define N 16
!  
  int main1 ()
  {  
    char cb[N] = {0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45};
--- 4,11 ----
  #include "tree-vect.h"
  
  #define N 16
! 
! __attribute__ ((noinline)) 
  int main1 ()
  {  
    char cb[N] = {0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45};
Index: gcc.dg/vect/vect-outer-2d.c
===================================================================
*** gcc.dg/vect/vect-outer-2d.c	(revision 128072)
--- gcc.dg/vect/vect-outer-2d.c	(working copy)
***************
*** 5,11 ****
  #define N 40
  float image[N][N][N+1] __attribute__ ((__aligned__(16)));
  
! void
  foo (){
    int i,j,k;
  
--- 5,11 ----
  #define N 40
  float image[N][N][N+1] __attribute__ ((__aligned__(16)));
  
! __attribute__ ((noinline)) void
  foo (){
    int i,j,k;
  
Index: gcc.dg/vect/vect-outer-6.c
===================================================================
*** gcc.dg/vect/vect-outer-6.c	(revision 128072)
--- gcc.dg/vect/vect-outer-6.c	(working copy)
*************** float C[N] __attribute__ ((__aligned__(1
*** 13,18 ****
--- 13,19 ----
  float D[N] __attribute__ ((__aligned__(16)));
  extern void abort(void); 
  
+ __attribute__ ((noinline))
  int main1 ()
  {  
    float s;
Index: gcc.dg/vect/vect-82_64.c
===================================================================
*** gcc.dg/vect/vect-82_64.c	(revision 128072)
--- gcc.dg/vect/vect-82_64.c	(working copy)
***************
*** 7,12 ****
--- 7,13 ----
  
  #define N 16
   
+ __attribute__ ((noinline))
  int main1 ()
  {  
    long long unsigned int ca[N];
Index: gcc.dg/vect/no-scevccp-outer-9.c
===================================================================
*** gcc.dg/vect/no-scevccp-outer-9.c	(revision 128072)
--- gcc.dg/vect/no-scevccp-outer-9.c	(working copy)
***************
*** 7,13 ****
  
  int a[N];
  
! int
  foo (int n){
    int i,j;
    int sum;
--- 7,13 ----
  
  int a[N];
  
! __attribute__ ((noinline)) int
  foo (int n){
    int i,j;
    int sum;
Index: gcc.dg/vect/vect-strided-u8-i2-gap.c
===================================================================
*** gcc.dg/vect/vect-strided-u8-i2-gap.c	(revision 128072)
--- gcc.dg/vect/vect-strided-u8-i2-gap.c	(working copy)
*************** typedef struct {
*** 10,16 ****
     unsigned char b;
  } s;
  
! int
  main1 (s *arr)
  {
    s *ptr = arr;
--- 10,16 ----
     unsigned char b;
  } s;
  
! __attribute__ ((noinline)) int
  main1 (s *arr)
  {
    s *ptr = arr;
Index: gcc.dg/vect/vect-116.c
===================================================================
*** gcc.dg/vect/vect-116.c	(revision 128072)
--- gcc.dg/vect/vect-116.c	(working copy)
***************
*** 5,10 ****
--- 5,12 ----
  #include "tree-vect.h"
  
  extern void abort (void);
+ 
+ __attribute__ ((noinline))
  void foo()
  {
    static unsigned char A[256], B[256], C[256];
Index: gcc.dg/vect/vect-strided-store-u16-i4.c
===================================================================
*** gcc.dg/vect/vect-strided-store-u16-i4.c	(revision 128072)
--- gcc.dg/vect/vect-strided-store-u16-i4.c	(working copy)
*************** unsigned short a[N];
*** 16,22 ****
  unsigned short b[N];
  unsigned short c[N];
  
! int
  main1 (s *arr)
  {
    int i;
--- 16,22 ----
  unsigned short b[N];
  unsigned short c[N];
  
! __attribute__ ((noinline)) int
  main1 (s *arr)
  {
    int i;
Index: gcc.dg/vect/no-scevccp-vect-iv-3.c
===================================================================
*** gcc.dg/vect/no-scevccp-vect-iv-3.c	(revision 128072)
--- gcc.dg/vect/no-scevccp-vect-iv-3.c	(working copy)
***************
*** 6,11 ****
--- 6,12 ----
  
  #define N 26
   
+ __attribute__ ((noinline))
  unsigned int main1 ()
  {  
    unsigned short i;
Index: gcc.dg/vect/vect-reduc-pattern-1b.c
===================================================================
*** gcc.dg/vect/vect-reduc-pattern-1b.c	(revision 128072)
--- gcc.dg/vect/vect-reduc-pattern-1b.c	(working copy)
*************** unsigned char udata_ch[N] =
*** 8,14 ****
    { 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28 };
  #define SUM 210
  
! int
  foo ()
  {
    int i;
--- 8,14 ----
    { 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28 };
  #define SUM 210
  
! __attribute__ ((noinline)) int
  foo ()
  {
    int i;
Index: gcc.dg/vect/wrapv-vect-reduc-dot-s8b.c
===================================================================
*** gcc.dg/vect/wrapv-vect-reduc-dot-s8b.c	(revision 128072)
--- gcc.dg/vect/wrapv-vect-reduc-dot-s8b.c	(working copy)
*************** signed char Y[N] __attribute__ ((__align
*** 19,25 ****
     Can also be vectorized as widening-mult + summation,
     or with type-conversion support.
   */
! short
  foo(int len) {
    int i;
    short result = 0;
--- 19,25 ----
     Can also be vectorized as widening-mult + summation,
     or with type-conversion support.
   */
! __attribute__ ((noinline)) short
  foo(int len) {
    int i;
    short result = 0;
Index: gcc.dg/vect/no-scevccp-outer-12.c
===================================================================
*** gcc.dg/vect/no-scevccp-outer-12.c	(revision 128072)
--- gcc.dg/vect/no-scevccp-outer-12.c	(working copy)
***************
*** 8,14 ****
  int a[N];
  short b[N];
  
! int
  foo (){
    int i,j;
    int sum;
--- 8,14 ----
  int a[N];
  short b[N];
  
! __attribute__ ((noinline)) int
  foo (){
    int i,j;
    int sum;
Index: gcc.dg/vect/vect-multitypes-7.c
===================================================================
*** gcc.dg/vect/vect-multitypes-7.c	(revision 128072)
--- gcc.dg/vect/vect-multitypes-7.c	(working copy)
*************** signed short X[N] __attribute__ ((__alig
*** 13,19 ****
  signed short Y[N] __attribute__ ((__aligned__(16)));
  unsigned char CX[N] __attribute__ ((__aligned__(16)));
  
! void
  foo1(int len) {
    int i;
    int result1 = 0;
--- 13,19 ----
  signed short Y[N] __attribute__ ((__aligned__(16)));
  unsigned char CX[N] __attribute__ ((__aligned__(16)));
  
! __attribute__ ((noinline)) void
  foo1(int len) {
    int i;
    int result1 = 0;
Index: gcc.dg/vect/no-vfa-vect-101.c
===================================================================
*** gcc.dg/vect/no-vfa-vect-101.c	(revision 128072)
--- gcc.dg/vect/no-vfa-vect-101.c	(working copy)
*************** struct extraction
*** 15,20 ****
--- 15,21 ----
  static int a[N] = {1,2,3,4,5,6,7,8,9};
  static int b[N] = {2,3,4,5,6,7,8,9,0};
  
+ __attribute__ ((noinline))
  int main1 (int x, int y) {
    int i;
    struct extraction *p;
Index: gcc.dg/vect/vect-44.c
===================================================================
*** gcc.dg/vect/vect-44.c	(revision 128072)
--- gcc.dg/vect/vect-44.c	(working copy)
***************
*** 5,10 ****
--- 5,11 ----
  
  #define N 256
  
+ __attribute__ ((noinline))
  void bar (float *pa, float *pb, float *pc) 
  {
    int i;
*************** void bar (float *pa, float *pb, float *p
*** 27,33 ****
     vect-45.c is similar to this one with one difference:
          can't prove that pointers don't alias.  */
  
! int
  main1 (float * __restrict__ pa, float * __restrict__ pb, float * __restrict__ pc)
  {
    int i;
--- 28,34 ----
     vect-45.c is similar to this one with one difference:
          can't prove that pointers don't alias.  */
  
! __attribute__ ((noinline)) int
  main1 (float * __restrict__ pa, float * __restrict__ pb, float * __restrict__ pc)
  {
    int i;
Index: gcc.dg/vect/vect-27.c
===================================================================
*** gcc.dg/vect/vect-27.c	(revision 128072)
--- gcc.dg/vect/vect-27.c	(working copy)
***************
*** 7,12 ****
--- 7,13 ----
  
  /* unaligned load.  */
  
+ __attribute__ ((noinline))
  int main1 ()
  {
    int i;
Index: gcc.dg/vect/vect-vfa-03.c
===================================================================
*** gcc.dg/vect/vect-vfa-03.c	(revision 128072)
--- gcc.dg/vect/vect-vfa-03.c	(working copy)
*************** struct S X[N] = {10, 10, 11, 11, 12, 12,
*** 18,24 ****
  		 23, 23, 24, 24, 25, 25};
  struct S Y[N] = {};
   
! void
  foo (struct S * in, struct S * out)
  {
    int i;
--- 18,24 ----
  		 23, 23, 24, 24, 25, 25};
  struct S Y[N] = {};
   
! __attribute__ ((noinline)) void
  foo (struct S * in, struct S * out)
  {
    int i;
Index: gcc.dg/vect/vect-86.c
===================================================================
*** gcc.dg/vect/vect-86.c	(revision 128072)
--- gcc.dg/vect/vect-86.c	(working copy)
***************
*** 5,10 ****
--- 5,11 ----
  
  #define N 16
  
+ __attribute__ ((noinline))
  int main1 (int n)
  {
    int i, j, k;
Index: gcc.dg/vect/vect-100.c
===================================================================
*** gcc.dg/vect/vect-100.c	(revision 128072)
--- gcc.dg/vect/vect-100.c	(working copy)
*************** struct extraction
*** 15,20 ****
--- 15,21 ----
  static int a[N] = {1,2,3,4,5,6,7,8,9};
  static int b[N] = {2,3,4,5,6,7,8,9,0};
  
+ __attribute__ ((noinline))
  int main1 () {
    int i;
    struct extraction *p;
*************** int main1 () {
*** 38,43 ****
--- 39,45 ----
    return 0;
  }
  
+ __attribute__ ((noinline))
  int main2 () {
    int i;
    int c[N] = {1,2,3,4,5,6,7,8,9};
Index: gcc.dg/vect/vect-reduc-1.c
===================================================================
*** gcc.dg/vect/vect-reduc-1.c	(revision 128072)
--- gcc.dg/vect/vect-reduc-1.c	(working copy)
***************
*** 8,13 ****
--- 8,14 ----
  
  /* Test vectorization of reduction of unsigned-int.  */
  
+ __attribute__ ((noinline))
  void main1 (unsigned int x, unsigned int max_result, unsigned int min_result)
  {
    int i;
Index: gcc.dg/vect/vect-outer-3c.c
===================================================================
*** gcc.dg/vect/vect-outer-3c.c	(revision 128072)
--- gcc.dg/vect/vect-outer-3c.c	(working copy)
*************** float out[N];
*** 8,14 ****
  
  /* Outer-loop vectorization.  */
  
! void
  foo (){
    int i,j;
    float diff;
--- 8,14 ----
  
  /* Outer-loop vectorization.  */
  
! __attribute__ ((noinline)) void
  foo (){
    int i,j;
    float diff;
Index: gcc.dg/vect/vect-floatint-conversion-2.c
===================================================================
*** gcc.dg/vect/vect-floatint-conversion-2.c	(revision 128072)
--- gcc.dg/vect/vect-floatint-conversion-2.c	(working copy)
***************
*** 5,11 ****
  
  #define N 32
  
! int
  main1 ()
  {
    int i;
--- 5,11 ----
  
  #define N 32
  
! __attribute__ ((noinline)) int
  main1 ()
  {
    int i;
Index: gcc.dg/vect/vect-strided-a-u32-mult.c
===================================================================
*** gcc.dg/vect/vect-strided-a-u32-mult.c	(revision 128072)
--- gcc.dg/vect/vect-strided-a-u32-mult.c	(working copy)
*************** typedef struct {
*** 10,16 ****
     unsigned int b;
  } ii;
  
! int
  main1 ()
  {
    unsigned short arr[N];
--- 10,16 ----
     unsigned int b;
  } ii;
  
! __attribute__ ((noinline)) int
  main1 ()
  {
    unsigned short arr[N];
Index: gcc.dg/vect/vect-strided-u8-i8.c
===================================================================
*** gcc.dg/vect/vect-strided-u8-i8.c	(revision 128072)
--- gcc.dg/vect/vect-strided-u8-i8.c	(working copy)
*************** typedef struct {
*** 17,23 ****
     unsigned char h;
  } s;
  
! int
  main1 (s *arr)
  {
    int i;
--- 17,23 ----
     unsigned char h;
  } s;
  
! __attribute__ ((noinline)) int
  main1 (s *arr)
  {
    int i;
Index: gcc.dg/vect/vect-outer-fir-lb.c
===================================================================
*** gcc.dg/vect/vect-outer-fir-lb.c	(revision 128072)
--- gcc.dg/vect/vect-outer-fir-lb.c	(working copy)
*************** float fir_out[N];
*** 14,19 ****
--- 14,20 ----
  /* Currently not vectorized because the loop-count for the inner-loop
     has a maybe_zero component. Will be fixed when we incorporate the
     "cond_expr in rhs" patch.  */
+ __attribute__ ((noinline))
  void foo (){
   int i,j,k;
   float diff;
*************** void foo (){
*** 39,44 ****
--- 40,46 ----
  }
  
  /* Vectorized. Changing misalignment in the inner-loop.  */
+ __attribute__ ((noinline))
  void fir (){
    int i,j,k;
    float diff;
Index: gcc.dg/vect/vect-108.c
===================================================================
*** gcc.dg/vect/vect-108.c	(revision 128072)
--- gcc.dg/vect/vect-108.c	(working copy)
***************
*** 5,11 ****
  
  #define N 16
  
! int
  main1 (void)
  {
    int i;
--- 5,11 ----
  
  #define N 16
  
! __attribute__ ((noinline)) int
  main1 (void)
  {
    int i;
Index: gcc.dg/vect/vect-reduc-9.c
===================================================================
*** gcc.dg/vect/vect-reduc-9.c	(revision 128072)
--- gcc.dg/vect/vect-reduc-9.c	(working copy)
***************
*** 7,13 ****
  extern void abort (void);
  typedef unsigned short T;
  
! void
  testmax (const T *c, T init, T result)
  {
    T lc[N], accum = init;
--- 7,13 ----
  extern void abort (void);
  typedef unsigned short T;
  
! __attribute__ ((noinline)) void
  testmax (const T *c, T init, T result)
  {
    T lc[N], accum = init;
*************** testmax (const T *c, T init, T result)
*** 23,29 ****
      abort ();
  }
  
! void
  testmin (const T *c, T init, T result)
  {
    T lc[N], accum = init;
--- 23,29 ----
      abort ();
  }
  
! __attribute__ ((noinline)) void
  testmin (const T *c, T init, T result)
  {
    T lc[N], accum = init;
Index: gcc.dg/vect/no-scevccp-outer-21.c
===================================================================
*** gcc.dg/vect/no-scevccp-outer-21.c	(revision 128072)
--- gcc.dg/vect/no-scevccp-outer-21.c	(working copy)
***************
*** 7,13 ****
  
  int a[N];
  
! int
  foo (){
    int i;
    unsigned short j;
--- 7,13 ----
  
  int a[N];
  
! __attribute__ ((noinline)) int
  foo (){
    int i;
    unsigned short j;
Index: gcc.dg/vect/vect-iv-2.c
===================================================================
*** gcc.dg/vect/vect-iv-2.c	(revision 128072)
--- gcc.dg/vect/vect-iv-2.c	(working copy)
***************
*** 5,11 ****
  
  #define N 16
   
! int main1 ()
  {  
    int arr1[N];
    int k = 0;
--- 5,11 ----
  
  #define N 16
   
! __attribute__ ((noinline)) int main1 ()
  {  
    int arr1[N];
    int k = 0;
Index: gcc.dg/vect/vect-reduc-pattern-2a.c
===================================================================
*** gcc.dg/vect/vect-reduc-pattern-2a.c	(revision 128072)
--- gcc.dg/vect/vect-reduc-pattern-2a.c	(working copy)
*************** signed short data_sh[N] =
*** 8,14 ****
    { 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28 };
  #define SUM 210
  
! int
  foo ()
  {
    int i;
--- 8,14 ----
    { 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28 };
  #define SUM 210
  
! __attribute__ ((noinline)) int
  foo ()
  {
    int i;
Index: gcc.dg/vect/vect-11.c
===================================================================
*** gcc.dg/vect/vect-11.c	(revision 128072)
--- gcc.dg/vect/vect-11.c	(working copy)
***************
*** 6,11 ****
--- 6,12 ----
  
  #define N 16
  
+ __attribute__ ((noinline)) 
  int main1 ()
  {
    int i;
Index: gcc.dg/vect/vect-70.c
===================================================================
*** gcc.dg/vect/vect-70.c	(revision 128072)
--- gcc.dg/vect/vect-70.c	(working copy)
*************** struct test1{
*** 17,22 ****
--- 17,23 ----
    struct s e[N]; /* array e.n is aligned */
  };
  
+ __attribute__ ((noinline))
  int main1 ()
  {
    int i,j;
Index: gcc.dg/vect/vect-36.c
===================================================================
*** gcc.dg/vect/vect-36.c	(revision 128072)
--- gcc.dg/vect/vect-36.c	(working copy)
***************
*** 5,10 ****
--- 5,11 ----
  
  #define N 16
   
+ __attribute__ ((noinline))
  int main1 ()
  {  
    struct {
Index: gcc.dg/vect/vect-19.c
===================================================================
*** gcc.dg/vect/vect-19.c	(revision 128072)
--- gcc.dg/vect/vect-19.c	(working copy)
***************
*** 5,11 ****
  
  #define N 64
  
! int
  main1 ()
  {
    int i;
--- 5,11 ----
  
  #define N 64
  
! __attribute__ ((noinline)) int
  main1 ()
  {
    int i;
Index: gcc.dg/vect/vect-95.c
===================================================================
*** gcc.dg/vect/vect-95.c	(revision 128072)
--- gcc.dg/vect/vect-95.c	(working copy)
***************
*** 5,10 ****
--- 5,11 ----
  
  #define N 256
  
+ __attribute__ ((noinline))
  void bar (float *pd, float *pa, float *pb, float *pc) 
  {
    int i;
*************** void bar (float *pd, float *pa, float *p
*** 22,28 ****
  }
  
  
! int
  main1 (int n, float * __restrict__ pd, float * __restrict__ pa, float * __restrict__ pb, float * __restrict__ pc)
  {
    int i;
--- 23,29 ----
  }
  
  
! __attribute__ ((noinline)) int
  main1 (int n, float * __restrict__ pd, float * __restrict__ pa, float * __restrict__ pb, float * __restrict__ pc)
  {
    int i;
Index: gcc.dg/vect/vect-78.c
===================================================================
*** gcc.dg/vect/vect-78.c	(revision 128072)
--- gcc.dg/vect/vect-78.c	(working copy)
***************
*** 13,18 ****
--- 13,19 ----
  int ib[N+OFF] __attribute__ ((__aligned__(16))) = {0, 1, 3, 5, 7, 11, 13, 17, 0, 2, 6, 10, 14, 22, 26, 34};
  int off = 8;
  
+ __attribute__ ((noinline))
  int main1 (int *ib)
  {
    int i;
Index: gcc.dg/vect/vect-strided-a-u16-i4.c
===================================================================
*** gcc.dg/vect/vect-strided-a-u16-i4.c	(revision 128072)
--- gcc.dg/vect/vect-strided-a-u16-i4.c	(working copy)
*************** typedef struct {
*** 12,18 ****
     unsigned short d;
  } s;
  
! int
  main1 ()
  {
    s arr[N];
--- 12,18 ----
     unsigned short d;
  } s;
  
! __attribute__ ((noinline)) int
  main1 ()
  {
    s arr[N];
Index: gcc.dg/vect/vect-3.c
===================================================================
*** gcc.dg/vect/vect-3.c	(revision 128072)
--- gcc.dg/vect/vect-3.c	(working copy)
***************
*** 6,12 ****
  
  #define N 20
  
! int
  main1 ()
  {
    int i;
--- 6,12 ----
  
  #define N 20
  
! __attribute__ ((noinline)) int
  main1 ()
  {
    int i;
Index: gcc.dg/vect/vect-all.c
===================================================================
*** gcc.dg/vect/vect-all.c	(revision 128072)
--- gcc.dg/vect/vect-all.c	(working copy)
*************** float fresults1[N] = {192.00,240.00,288.
*** 13,18 ****
--- 13,19 ----
  float fresults2[N] = {0.00,6.00,12.00,18.00,24.00,30.00,36.00,42.00,0.00,54.00,120.00,198.00,288.00,390.00,504.00,630.00};
  
  /****************************************************/
+ __attribute__ ((noinline))
  void icheck_results (int *a, int *results)
  {
    int i;
*************** void icheck_results (int *a, int *result
*** 23,28 ****
--- 24,30 ----
      }
  }
  
+ __attribute__ ((noinline))
  void fcheck_results (float *a, float *results)
  {
    int i;
*************** void fcheck_results (float *a, float *re
*** 33,63 ****
      }
  }   
  
! void 
  fbar_mul (float *a)
  {
    fcheck_results (a, fmul_results);
  } 
  
! void 
  fbar_add (float *a)
  {
    fcheck_results (a, fadd_results);
  } 
  
! void 
  ibar_add (int *a)
  {
    icheck_results (a, iadd_results);
  } 
  
! void 
  fbar1 (float *a)
  {
    fcheck_results (a, fresults1);
  } 
  
! void 
  fbar2 (float *a)
  {
    fcheck_results (a, fresults2);
--- 35,65 ----
      }
  }   
  
! __attribute__ ((noinline)) void 
  fbar_mul (float *a)
  {
    fcheck_results (a, fmul_results);
  } 
  
! __attribute__ ((noinline)) void 
  fbar_add (float *a)
  {
    fcheck_results (a, fadd_results);
  } 
  
! __attribute__ ((noinline)) void 
  ibar_add (int *a)
  {
    icheck_results (a, iadd_results);
  } 
  
! __attribute__ ((noinline)) void 
  fbar1 (float *a)
  {
    fcheck_results (a, fresults1);
  } 
  
! __attribute__ ((noinline)) void 
  fbar2 (float *a)
  {
    fcheck_results (a, fresults2);
*************** fbar2 (float *a)
*** 66,72 ****
  
  /* All of the loops below are currently vectorizable.  */
  
! int
  main1 ()
  {
    int i,j;
--- 68,74 ----
  
  /* All of the loops below are currently vectorizable.  */
  
! __attribute__ ((noinline)) int
  main1 ()
  {
    int i,j;
Index: gcc.dg/vect/vect-117.c
===================================================================
*** gcc.dg/vect/vect-117.c	(revision 128072)
--- gcc.dg/vect/vect-117.c	(working copy)
*************** static  int c[N][N] = {{ 1, 2, 3, 4, 5},
*** 20,25 ****
--- 20,26 ----
  
  volatile int foo;
  
+ __attribute__ ((noinline))
  int main1 (int A[N][N], int n) 
  {
  
Index: gcc.dg/vect/no-scevccp-outer-13.c
===================================================================
*** gcc.dg/vect/no-scevccp-outer-13.c	(revision 128072)
--- gcc.dg/vect/no-scevccp-outer-13.c	(working copy)
***************
*** 7,13 ****
  
  unsigned short in[N];
  
! unsigned int
  foo (short scale){
    int i;
    unsigned short j;
--- 7,13 ----
  
  unsigned short in[N];
  
! __attribute__ ((noinline)) unsigned int
  foo (short scale){
    int i;
    unsigned short j;
*************** foo (short scale){
*** 24,30 ****
    return sum;
  }
  
! unsigned short
  bar (void)
  {
    unsigned short j;
--- 24,30 ----
    return sum;
  }
  
! __attribute__ ((noinline)) unsigned short
  bar (void)
  {
    unsigned short j;
Index: gcc.dg/vect/vect-reduc-pattern-1c.c
===================================================================
*** gcc.dg/vect/vect-reduc-pattern-1c.c	(revision 128072)
--- gcc.dg/vect/vect-reduc-pattern-1c.c	(working copy)
*************** unsigned char udata_ch[N] =
*** 8,14 ****
    { 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28 };
  #define SUM 210
  
! int
  foo ()
  {
    int i;
--- 8,14 ----
    { 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28 };
  #define SUM 210
  
! __attribute__ ((noinline)) int
  foo ()
  {
    int i;
Index: gcc.dg/vect/vect-strided-u16-i2.c
===================================================================
*** gcc.dg/vect/vect-strided-u16-i2.c	(revision 128072)
--- gcc.dg/vect/vect-strided-u16-i2.c	(working copy)
*************** typedef struct {
*** 10,16 ****
     unsigned short b;
  } s;
  
! int
  main1 (s *arr)
  {
    s *ptr = arr;
--- 10,16 ----
     unsigned short b;
  } s;
  
! __attribute__ ((noinline)) int
  main1 (s *arr)
  {
    s *ptr = arr;
Index: gcc.dg/vect/vect-strided-a-u8-i8-gap7.c
===================================================================
*** gcc.dg/vect/vect-strided-a-u8-i8-gap7.c	(revision 128072)
--- gcc.dg/vect/vect-strided-a-u8-i8-gap7.c	(working copy)
*************** typedef struct {
*** 16,22 ****
     unsigned char h;
  } s;
  
! int
  main1 ()
  {
    int i;
--- 16,22 ----
     unsigned char h;
  } s;
  
! __attribute__ ((noinline)) int
  main1 ()
  {
    int i;
Index: gcc.dg/vect/vect-20.c
===================================================================
*** gcc.dg/vect/vect-20.c	(revision 128072)
--- gcc.dg/vect/vect-20.c	(working copy)
***************
*** 5,11 ****
  
  #define N 64
  
! int
  main1 ()
  {
    int i;
--- 5,11 ----
  
  #define N 64
  
! __attribute__ ((noinline)) int
  main1 ()
  {
    int i;
Index: gcc.dg/vect/vect-multitypes-8.c
===================================================================
*** gcc.dg/vect/vect-multitypes-8.c	(revision 128072)
--- gcc.dg/vect/vect-multitypes-8.c	(working copy)
*************** unsigned short uresultY[N];
*** 12,18 ****
  
  /* Unsigned type demotion (si->hi) */
  
! int
  foo1(int len) {
    int i;
  
--- 12,18 ----
  
  /* Unsigned type demotion (si->hi) */
  
! __attribute__ ((noinline)) int
  foo1(int len) {
    int i;
  
Index: gcc.dg/vect/no-scevccp-noreassoc-outer-1.c
===================================================================
*** gcc.dg/vect/no-scevccp-noreassoc-outer-1.c	(revision 128072)
--- gcc.dg/vect/no-scevccp-noreassoc-outer-1.c	(working copy)
***************
*** 7,13 ****
  
  int a[N];
  
! int
  foo (){
    int i,j,k=0;
    int sum,x;
--- 7,13 ----
  
  int a[N];
  
! __attribute__ ((noinline)) int
  foo (){
    int i,j,k=0;
    int sum,x;
Index: gcc.dg/vect/no-vfa-vect-102.c
===================================================================
*** gcc.dg/vect/no-vfa-vect-102.c	(revision 128072)
--- gcc.dg/vect/no-vfa-vect-102.c	(working copy)
*************** static int a[N] = {1,2,3,4,5,6,7,8,9};
*** 16,21 ****
--- 16,22 ----
  static int b[N] = {2,3,4,5,6,7,8,9,9};
  volatile int foo;
  
+ __attribute__ ((noinline))
  int main1 (int x, int y) {
    int i;
    struct extraction *p;
Index: gcc.dg/vect/vect-62.c
===================================================================
*** gcc.dg/vect/vect-62.c	(revision 128072)
--- gcc.dg/vect/vect-62.c	(working copy)
***************
*** 5,10 ****
--- 5,11 ----
  
  #define N 16
  
+ __attribute__ ((noinline))
  int main1 ()
  {
    int i, j;
Index: gcc.dg/vect/vect-28.c
===================================================================
*** gcc.dg/vect/vect-28.c	(revision 128072)
--- gcc.dg/vect/vect-28.c	(working copy)
***************
*** 8,13 ****
--- 8,14 ----
  
  /* unaligned store.  */
  
+ __attribute__ ((noinline))
  int main1 (int off)
  {
    int i;
Index: gcc.dg/vect/vect-multitypes-10.c
===================================================================
*** gcc.dg/vect/vect-multitypes-10.c	(revision 128072)
--- gcc.dg/vect/vect-multitypes-10.c	(working copy)
*************** signed short Y[N] __attribute__ ((__alig
*** 13,19 ****
  int result[N];
  
  /* Unsigned type promotion (hi->si) */
! int
  foo1(int len) {
    int i;
  
--- 13,19 ----
  int result[N];
  
  /* Unsigned type promotion (hi->si) */
! __attribute__ ((noinline)) int
  foo1(int len) {
    int i;
  
*************** foo1(int len) {
*** 24,30 ****
  }
  
  /* Signed type promotion (hi->si) */
! int
  foo2(int len) {
    int i;
  
--- 24,30 ----
  }
  
  /* Signed type promotion (hi->si) */
! __attribute__ ((noinline)) int
  foo2(int len) {
    int i;
  
Index: gcc.dg/vect/vect-vfa-04.c
===================================================================
*** gcc.dg/vect/vect-vfa-04.c	(revision 128072)
--- gcc.dg/vect/vect-vfa-04.c	(working copy)
***************
*** 7,13 ****
  int result[] = {10, 11, 15, 16, 20, 21, 25, 26, 30, 31, 35, 36, 40, 41, 45, 46, 50, 51};
  int X[] =      {10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 0, 0};
   
! void
  foo (int *in, int *out)
  {  
    int i;
--- 7,13 ----
  int result[] = {10, 11, 15, 16, 20, 21, 25, 26, 30, 31, 35, 36, 40, 41, 45, 46, 50, 51};
  int X[] =      {10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 0, 0};
   
! __attribute__ ((noinline)) void
  foo (int *in, int *out)
  {  
    int i;
Index: gcc.dg/vect/vect-87.c
===================================================================
*** gcc.dg/vect/vect-87.c	(revision 128072)
--- gcc.dg/vect/vect-87.c	(working copy)
***************
*** 5,10 ****
--- 5,11 ----
  
  #define N 16
  
+ __attribute__ ((noinline))
  int main1 (int n, int *a)
  {
    int i, j, k;
Index: gcc.dg/vect/vect-reduc-dot-u16a.c
===================================================================
*** gcc.dg/vect/vect-reduc-dot-u16a.c	(revision 128072)
--- gcc.dg/vect/vect-reduc-dot-u16a.c	(working copy)
*************** unsigned short Y[N] __attribute__ ((__al
*** 14,20 ****
  /* short->short->int dot product. 
     Not detected as a dot-product pattern.
     Requires support for non-widneing multiplication and widening-summation.  */
! unsigned int
  foo1(int len) {
    int i;
    unsigned int result = 0;
--- 14,20 ----
  /* short->short->int dot product. 
     Not detected as a dot-product pattern.
     Requires support for non-widneing multiplication and widening-summation.  */
! __attribute__ ((noinline)) unsigned int
  foo1(int len) {
    int i;
    unsigned int result = 0;
Index: gcc.dg/vect/vect-reduc-2.c
===================================================================
*** gcc.dg/vect/vect-reduc-2.c	(revision 128072)
--- gcc.dg/vect/vect-reduc-2.c	(working copy)
***************
*** 8,13 ****
--- 8,14 ----
  
  /* Test vectorization of reduction of signed-int.  */
  
+ __attribute__ ((noinline))
  void main1 (int x, int max_result, int min_result)
  {
    int i;
Index: gcc.dg/vect/vect-intfloat-conversion-4a.c
===================================================================
*** gcc.dg/vect/vect-intfloat-conversion-4a.c	(revision 128072)
--- gcc.dg/vect/vect-intfloat-conversion-4a.c	(working copy)
***************
*** 5,11 ****
  
  #define N 32
  
! int main1 ()
  {
    int i;
    short sb[N] = {0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45,0,-3,-6,-9,-12,-15,-18,-21,-24,-27,-30,-33,-36,-39,-42,-45};
--- 5,11 ----
  
  #define N 32
  
! __attribute__ ((noinline)) int main1 ()
  {
    int i;
    short sb[N] = {0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45,0,-3,-6,-9,-12,-15,-18,-21,-24,-27,-30,-33,-36,-39,-42,-45};
Index: gcc.dg/vect/vect-109.c
===================================================================
*** gcc.dg/vect/vect-109.c	(revision 128072)
--- gcc.dg/vect/vect-109.c	(working copy)
*************** int ic[N] = {0,3,6,9,12,15,18,21,24,27,3
*** 16,21 ****
--- 16,22 ----
  int ib[N] = {0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45,
  	       0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};
  
+ __attribute__ ((noinline)) 
  int main1 (int n)
  {
    int i;
Index: gcc.dg/vect/no-scevccp-outer-22.c
===================================================================
*** gcc.dg/vect/no-scevccp-outer-22.c	(revision 128072)
--- gcc.dg/vect/no-scevccp-outer-22.c	(working copy)
***************
*** 7,13 ****
  
  int a[N];
  
! int
  foo (int n){
    int i,j;
    int sum;
--- 7,13 ----
  
  int a[N];
  
! __attribute__ ((noinline)) int
  foo (int n){
    int i,j;
    int sum;
Index: gcc.dg/vect/no-section-anchors-vect-outer-4h.c
===================================================================
*** gcc.dg/vect/no-section-anchors-vect-outer-4h.c	(revision 128072)
--- gcc.dg/vect/no-section-anchors-vect-outer-4h.c	(working copy)
*************** unsigned int out[N];
*** 10,15 ****
--- 10,16 ----
  
  /* Outer-loop vectorization. */
  
+ __attribute__ ((noinline))
  void
  foo (){
    int i,j;
Index: gcc.dg/vect/vect-iv-3.c
===================================================================
*** gcc.dg/vect/vect-iv-3.c	(revision 128072)
--- gcc.dg/vect/vect-iv-3.c	(working copy)
***************
*** 5,11 ****
  
  #define N 16
   
! int main1 ()
  {  
    int arr1[N];
    int arr2[N];
--- 5,11 ----
  
  #define N 16
   
! __attribute__ ((noinline)) int main1 ()
  {  
    int arr1[N];
    int arr2[N];
Index: gcc.dg/vect/vect-reduc-pattern-2b.c
===================================================================
*** gcc.dg/vect/vect-reduc-pattern-2b.c	(revision 128072)
--- gcc.dg/vect/vect-reduc-pattern-2b.c	(working copy)
*************** signed char data_ch[N] =
*** 8,14 ****
    { 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28 };
  #define SUM 210
  
! int
  foo ()
  {
    int i;
--- 8,14 ----
    { 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28 };
  #define SUM 210
  
! __attribute__ ((noinline)) int
  foo ()
  {
    int i;
Index: gcc.dg/vect/vect-reduc-dot-s8a.c
===================================================================
*** gcc.dg/vect/vect-reduc-dot-s8a.c	(revision 128072)
--- gcc.dg/vect/vect-reduc-dot-s8a.c	(working copy)
*************** signed char Y[N] __attribute__ ((__align
*** 18,24 ****
     In the future could also be vectorized as widening-mult + widening-summation,
     or with type-conversion support.
   */
! int
  foo1(int len) {
    int i;
    int result = 0;
--- 18,24 ----
     In the future could also be vectorized as widening-mult + widening-summation,
     or with type-conversion support.
   */
! __attribute__ ((noinline)) int
  foo1(int len) {
    int i;
    int result = 0;
Index: gcc.dg/vect/no-vfa-vect-57.c
===================================================================
*** gcc.dg/vect/no-vfa-vect-57.c	(revision 128072)
--- gcc.dg/vect/no-vfa-vect-57.c	(working copy)
***************
*** 5,10 ****
--- 5,11 ----
  
  #define N 256
  
+ __attribute__ ((noinline))
  void bar (float *pa, float *pb, float *pc)
  {
    int i;
*************** void bar (float *pa, float *pb, float *p
*** 28,34 ****
     vect-56.c is similar to this one with two differences:
          aliasing is a problem, and the write access is aligned.  */
  
! int
  main1 (float *pa)
  {
    int i;
--- 29,35 ----
     vect-56.c is similar to this one with two differences:
          aliasing is a problem, and the write access is aligned.  */
  
! __attribute__ ((noinline)) int
  main1 (float *pa)
  {
    int i;
Index: gcc.dg/vect/vect-12.c
===================================================================
*** gcc.dg/vect/vect-12.c	(revision 128072)
--- gcc.dg/vect/vect-12.c	(working copy)
***************
*** 5,10 ****
--- 5,11 ----
  
  #define N 16
  
+ __attribute__ ((noinline))
  int main1 ()
  {
    int i;
Index: gcc.dg/vect/vect-71.c
===================================================================
*** gcc.dg/vect/vect-71.c	(revision 128072)
--- gcc.dg/vect/vect-71.c	(working copy)
***************
*** 7,12 ****
--- 7,13 ----
  
  /* indirect access.  */
  
+ __attribute__ ((noinline))
  int main1 ()
  {
    int i;
Index: gcc.dg/vect/vect-54.c
===================================================================
*** gcc.dg/vect/vect-54.c	(revision 128072)
--- gcc.dg/vect/vect-54.c	(working copy)
***************
*** 5,10 ****
--- 5,11 ----
  
  #define N 256
  
+ __attribute__ ((noinline)) 
  void bar (float *pa, float *pb, float *pc)
  {
    int i;
*************** void bar (float *pa, float *pb, float *p
*** 25,31 ****
     vect-58.c is similar to this one with one difference:
          the loop bound is unknown.  */
  
! int
  main1 ()
  {
    int i;
--- 26,32 ----
     vect-58.c is similar to this one with one difference:
          the loop bound is unknown.  */
  
! __attribute__ ((noinline)) int
  main1 ()
  {
    int i;
Index: gcc.dg/vect/vect-strided-a-mult.c
===================================================================
*** gcc.dg/vect/vect-strided-a-mult.c	(revision 128072)
--- gcc.dg/vect/vect-strided-a-mult.c	(working copy)
*************** typedef struct {
*** 15,21 ****
     unsigned int b;
  } ii;
  
! int
  main1 ()
  {
    s arr[N];
--- 15,21 ----
     unsigned int b;
  } ii;
  
! __attribute__ ((noinline)) int
  main1 ()
  {
    s arr[N];
Index: gcc.dg/vect/no-scevccp-outer-3.c
===================================================================
*** gcc.dg/vect/no-scevccp-outer-3.c	(revision 128072)
--- gcc.dg/vect/no-scevccp-outer-3.c	(working copy)
***************
*** 7,13 ****
  
  int a[N];
  
! int
  foo (){
    int i,j;
    int sum;
--- 7,13 ----
  
  int a[N];
  
! __attribute__ ((noinline)) int
  foo (){
    int i,j;
    int sum;
Index: gcc.dg/vect/vect-96.c
===================================================================
*** gcc.dg/vect/vect-96.c	(revision 128072)
--- gcc.dg/vect/vect-96.c	(working copy)
*************** struct tmp
*** 11,16 ****
--- 11,17 ----
       int ia[N];
  };
  
+ __attribute__ ((noinline))
  int main1 (int off)
  {
    struct tmp sb[N];
Index: gcc.dg/vect/vect-reduc-1char.c
===================================================================
*** gcc.dg/vect/vect-reduc-1char.c	(revision 128072)
--- gcc.dg/vect/vect-reduc-1char.c	(working copy)
***************
*** 6,12 ****
  #define N 16
  #define DIFF 242
  
! void
  main1 (unsigned char x, unsigned char max_result, unsigned char min_result)
  {
    int i;
--- 6,12 ----
  #define N 16
  #define DIFF 242
  
! __attribute__ ((noinline)) void
  main1 (unsigned char x, unsigned char max_result, unsigned char min_result)
  {
    int i;
Index: gcc.dg/vect/vect-110.c
===================================================================
*** gcc.dg/vect/vect-110.c	(revision 128072)
--- gcc.dg/vect/vect-110.c	(working copy)
***************
*** 5,11 ****
  
  #define N 16
  
! int
  main1 (void)
  {
    int i;
--- 5,11 ----
  
  #define N 16
  
! static __attribute__ ((noinline)) int
  main1 (void)
  {
    int i;
Index: gcc.dg/vect/vect-intfloat-conversion-1.c
===================================================================
*** gcc.dg/vect/vect-intfloat-conversion-1.c	(revision 128072)
--- gcc.dg/vect/vect-intfloat-conversion-1.c	(working copy)
***************
*** 5,11 ****
  
  #define N 32
  
! int main1 ()
  {
    int i;
    int ib[N] = {0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45,0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45};
--- 5,11 ----
  
  #define N 32
  
! __attribute__ ((noinline)) int main1 ()
  {
    int i;
    int ib[N] = {0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45,0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45};
Index: gcc.dg/vect/vect-4.c
===================================================================
*** gcc.dg/vect/vect-4.c	(revision 128072)
--- gcc.dg/vect/vect-4.c	(working copy)
***************
*** 5,11 ****
  
  #define N 20
  
! int
  main1 ()
  {
    int i;
--- 5,11 ----
  
  #define N 20
  
! __attribute__ ((noinline)) int
  main1 ()
  {
    int i;
Index: gcc.dg/vect/vect-strided-store-u32-i2.c
===================================================================
*** gcc.dg/vect/vect-strided-store-u32-i2.c	(revision 128072)
--- gcc.dg/vect/vect-strided-store-u32-i2.c	(working copy)
***************
*** 6,12 ****
  
  #define N 16
  
! int
  main1 (void)
  {
    int i;
--- 6,12 ----
  
  #define N 16
  
! __attribute__ ((noinline)) int
  main1 (void)
  {
    int i;
Index: gcc.dg/vect/vect-outer-4k.c
===================================================================
*** gcc.dg/vect/vect-outer-4k.c	(revision 128072)
--- gcc.dg/vect/vect-outer-4k.c	(working copy)
*************** unsigned char arr[N];
*** 11,17 ****
  /* Outer-loop vectorization. */
  /* Not vectorized due to multiple-types in the inner-loop.  */
  
! unsigned int
  foo (){
    int i,j;
    unsigned int diff;
--- 11,17 ----
  /* Outer-loop vectorization. */
  /* Not vectorized due to multiple-types in the inner-loop.  */
  
! __attribute__ ((noinline)) unsigned int
  foo (){
    int i,j;
    unsigned int diff;
*************** foo (){
*** 28,34 ****
    return s;
  }
  
! unsigned int
  bar (int i, unsigned int diff, unsigned short *in)
  {
      int j;
--- 28,34 ----
    return s;
  }
  
! __attribute__ ((noinline)) unsigned int
  bar (int i, unsigned int diff, unsigned short *in)
  {
      int j;
Index: gcc.dg/vect/vect-multitypes-1.c
===================================================================
*** gcc.dg/vect/vect-multitypes-1.c	(revision 128072)
--- gcc.dg/vect/vect-multitypes-1.c	(working copy)
*************** int ib[N] = {0,3,6,9,12,15,18,21,24,27,3
*** 18,24 ****
     which will also align the access to 'ia[i+3]', and the loop could be 
     vectorized on all targets that support unaligned loads.  */
  
! int main1 (int n)
  {
    int i;
  
--- 18,24 ----
     which will also align the access to 'ia[i+3]', and the loop could be 
     vectorized on all targets that support unaligned loads.  */
  
! __attribute__ ((noinline)) int main1 (int n)
  {
    int i;
  
*************** int main1 (int n)
*** 46,52 ****
     This will not align the access 'sa[i+3]' (for which we need to
     peel 5 iterations), so the loop can not be vectorized.  */
  
! int main2 (int n)
  {
    int i;
  
--- 46,52 ----
     This will not align the access 'sa[i+3]' (for which we need to
     peel 5 iterations), so the loop can not be vectorized.  */
  
! __attribute__ ((noinline)) int main2 (int n)
  {
    int i;
  
Index: gcc.dg/vect/vect-strided-mult.c
===================================================================
*** gcc.dg/vect/vect-strided-mult.c	(revision 128072)
--- gcc.dg/vect/vect-strided-mult.c	(working copy)
*************** typedef struct {
*** 15,21 ****
     unsigned int b;
  } ii;
  
! int
  main1 (s *arr, ii *iarr)
  {
    s *ptr = arr;
--- 15,21 ----
     unsigned int b;
  } ii;
  
! __attribute__ ((noinline)) int
  main1 (s *arr, ii *iarr)
  {
    s *ptr = arr;
Index: gcc.dg/vect/no-scevccp-outer-14.c
===================================================================
*** gcc.dg/vect/no-scevccp-outer-14.c	(revision 128072)
--- gcc.dg/vect/no-scevccp-outer-14.c	(working copy)
***************
*** 5,11 ****
  
  #define N 64
  
! unsigned short
  foo (short scale){
    int i;
    unsigned short j;
--- 5,11 ----
  
  #define N 64
  
! __attribute__ ((noinline)) unsigned short
  foo (short scale){
    int i;
    unsigned short j;
*************** foo (short scale){
*** 22,28 ****
    return sum;
  }
  
! unsigned short
  bar (void)
  {
    unsigned short j;
--- 22,28 ----
    return sum;
  }
  
! __attribute__ ((noinline)) unsigned short
  bar (void)
  {
    unsigned short j;
Index: gcc.dg/vect/no-vfa-vect-49.c
===================================================================
*** gcc.dg/vect/no-vfa-vect-49.c	(revision 128072)
--- gcc.dg/vect/no-vfa-vect-49.c	(working copy)
***************
*** 5,10 ****
--- 5,11 ----
  
  #define N 256
  
+ __attribute__ ((noinline))
  void bar (float *pa, float *pb, float *pc) 
  {
    int i;
*************** void bar (float *pa, float *pb, float *p
*** 27,33 ****
     vect-48.c is similar to this one with one difference:
          aliasing is not a problem.  */
  
! int
  main1 (float *pb, float *pc)
  {
    float pa[N] __attribute__ ((__aligned__(16)));
--- 28,34 ----
     vect-48.c is similar to this one with one difference:
          aliasing is not a problem.  */
  
! __attribute__ ((noinline)) int
  main1 (float *pb, float *pc)
  {
    float pa[N] __attribute__ ((__aligned__(16)));
Index: gcc.dg/vect/vect-21.c
===================================================================
*** gcc.dg/vect/vect-21.c	(revision 128072)
--- gcc.dg/vect/vect-21.c	(working copy)
***************
*** 5,11 ****
  
  #define N 64
  
! int
  main1 ()
  {
    int i;
--- 5,11 ----
  
  #define N 64
  
! __attribute__ ((noinline)) int
  main1 ()
  {
    int i;
Index: gcc.dg/vect/vect-multitypes-9.c
===================================================================
*** gcc.dg/vect/vect-multitypes-9.c	(revision 128072)
--- gcc.dg/vect/vect-multitypes-9.c	(working copy)
*************** signed char X[N] __attribute__ ((__align
*** 11,17 ****
  short result[N];
  
  /* Unsigned type promotion (qi->hi) */
! int
  foo1(int len) {
    int i;
  
--- 11,17 ----
  short result[N];
  
  /* Unsigned type promotion (qi->hi) */
! __attribute__ ((noinline)) int
  foo1(int len) {
    int i;
  
*************** foo1(int len) {
*** 21,27 ****
  }
  
  /* Signed type promotion (qi->hi) */
! int
  foo2(int len) {
    int i;
  
--- 21,27 ----
  }
  
  /* Signed type promotion (qi->hi) */
! __attribute__ ((noinline)) int
  foo2(int len) {
    int i;
  
Index: gcc.dg/vect/no-scevccp-noreassoc-outer-2.c
===================================================================
*** gcc.dg/vect/no-scevccp-noreassoc-outer-2.c	(revision 128072)
--- gcc.dg/vect/no-scevccp-noreassoc-outer-2.c	(working copy)
***************
*** 6,12 ****
  #define N 40
  int a[200*N];
  
! void
  foo (){
    int i,j;
    int sum,s=0;
--- 6,12 ----
  #define N 40
  int a[200*N];
  
! __attribute__ ((noinline)) void
  foo (){
    int i,j;
    int sum,s=0;
Index: gcc.dg/vect/vect-80.c
===================================================================
*** gcc.dg/vect/vect-80.c	(revision 128072)
--- gcc.dg/vect/vect-80.c	(working copy)
*************** float fc[N] __attribute__ ((__aligned__(
*** 13,19 ****
     the expression that represents the first location accessed - is
     more involved than just an ssa_name.  */
  
! int
  main1 (float * __restrict__ pa, float * __restrict__ pb, float *__restrict__ pc)
  {
    int i;
--- 13,19 ----
     the expression that represents the first location accessed - is
     more involved than just an ssa_name.  */
  
! __attribute__ ((noinline)) int
  main1 (float * __restrict__ pa, float * __restrict__ pb, float *__restrict__ pc)
  {
    int i;
Index: gcc.dg/vect/vect-63.c
===================================================================
*** gcc.dg/vect/vect-63.c	(revision 128072)
--- gcc.dg/vect/vect-63.c	(working copy)
***************
*** 5,10 ****
--- 5,11 ----
  
  #define N 16
  
+ __attribute__ ((noinline))
  int main1 ()
  {
    int i, j;
Index: gcc.dg/vect/vect-46.c
===================================================================
*** gcc.dg/vect/vect-46.c	(revision 128072)
--- gcc.dg/vect/vect-46.c	(working copy)
***************
*** 5,10 ****
--- 5,11 ----
  
  #define N 256
  
+ __attribute__ ((noinline))
  void bar (float *pa, float *pb, float *pc)
  {
    int i;
*************** void bar (float *pa, float *pb, float *p
*** 25,31 ****
     vect-40.c is similar to this one with one difference:
          the loop bound is known.  */
  
! int
  main1 (int n)
  {
    int i;
--- 26,32 ----
     vect-40.c is similar to this one with one difference:
          the loop bound is known.  */
  
! __attribute__ ((noinline)) int
  main1 (int n)
  {
    int i;
Index: gcc.dg/vect/vect-29.c
===================================================================
*** gcc.dg/vect/vect-29.c	(revision 128072)
--- gcc.dg/vect/vect-29.c	(working copy)
***************
*** 8,13 ****
--- 8,14 ----
  
  /* unaligned load.  */
  
+ __attribute__ ((noinline))
  int main1 (int off)
  {
    int i;
Index: gcc.dg/vect/vect-strided-u8-i8-gap2.c
===================================================================
*** gcc.dg/vect/vect-strided-u8-i8-gap2.c	(revision 128072)
--- gcc.dg/vect/vect-strided-u8-i8-gap2.c	(working copy)
*************** typedef struct {
*** 17,23 ****
     unsigned char h;
  } s;
  
! int
  main1 (s *arr)
  {
    int i;
--- 17,23 ----
     unsigned char h;
  } s;
  
! __attribute__ ((noinline)) int
  main1 (s *arr)
  {
    int i;
Index: gcc.dg/vect/vect-multitypes-11.c
===================================================================
*** gcc.dg/vect/vect-multitypes-11.c	(revision 128072)
--- gcc.dg/vect/vect-multitypes-11.c	(working copy)
***************
*** 7,13 ****
  
  short x[N] __attribute__ ((__aligned__(16)));
  
! int
  foo (int len, int *z) {
    int i;
  
--- 7,13 ----
  
  short x[N] __attribute__ ((__aligned__(16)));
  
! __attribute__ ((noinline)) int
  foo (int len, int *z) {
    int i;
  
Index: gcc.dg/vect/vect-88.c
===================================================================
*** gcc.dg/vect/vect-88.c	(revision 128072)
--- gcc.dg/vect/vect-88.c	(working copy)
***************
*** 5,10 ****
--- 5,11 ----
  
  #define N 16
  
+ __attribute__ ((noinline))
  int main1 (int n, int *a)
  {
    int i, j, k;
Index: gcc.dg/vect/vect-strided-u8-i2.c
===================================================================
*** gcc.dg/vect/vect-strided-u8-i2.c	(revision 128072)
--- gcc.dg/vect/vect-strided-u8-i2.c	(working copy)
*************** typedef struct {
*** 10,16 ****
     unsigned char b;
  } s;
  
! int
  main1 (s *arr)
  {
    s *ptr = arr;
--- 10,16 ----
     unsigned char b;
  } s;
  
! __attribute__ ((noinline)) int
  main1 (s *arr)
  {
    s *ptr = arr;
Index: gcc.dg/vect/vect-reduc-dot-u16b.c
===================================================================
*** gcc.dg/vect/vect-reduc-dot-u16b.c	(revision 128072)
--- gcc.dg/vect/vect-reduc-dot-u16b.c	(working copy)
*************** unsigned short Y[N] __attribute__ ((__al
*** 15,21 ****
     promotes the ushorts to int, and then the product is promoted to unsigned 
     int for the addition.  Which results in an int->unsigned int cast, which 
     since no bits are modified in the cast should be trivially vectorizable.  */
! unsigned int
  foo2(int len) {
    int i;
    unsigned int result = 0;
--- 15,21 ----
     promotes the ushorts to int, and then the product is promoted to unsigned 
     int for the addition.  Which results in an int->unsigned int cast, which 
     since no bits are modified in the cast should be trivially vectorizable.  */
! __attribute__ ((noinline)) unsigned int
  foo2(int len) {
    int i;
    unsigned int result = 0;
Index: gcc.dg/vect/vect-reduc-3.c
===================================================================
*** gcc.dg/vect/vect-reduc-3.c	(revision 128072)
--- gcc.dg/vect/vect-reduc-3.c	(working copy)
***************
*** 8,13 ****
--- 8,14 ----
  /* Test vectorization of reduction of unsigned-int in the presence
     of unknown-loop-bound.  */
  
+ __attribute__ ((noinline))
  int main1 (int n, int res)
  {
    int i;
Index: gcc.dg/vect/vect-83_64.c
===================================================================
*** gcc.dg/vect/vect-83_64.c	(revision 128072)
--- gcc.dg/vect/vect-83_64.c	(working copy)
***************
*** 7,12 ****
--- 7,13 ----
  
  #define N 16
   
+ __attribute__ ((noinline))
  int main1 ()
  {  
    long long unsigned int ca[N];
Index: gcc.dg/vect/vect-intfloat-conversion-4b.c
===================================================================
*** gcc.dg/vect/vect-intfloat-conversion-4b.c	(revision 128072)
--- gcc.dg/vect/vect-intfloat-conversion-4b.c	(working copy)
***************
*** 5,11 ****
  
  #define N 32
  
! int main1 ()
  {
    int i;
    unsigned short usb[N] = {0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45,0,65533,65530,65527,65524,65521,65518,65515,65512,65509,65506,65503,65500,65497,65494,65491};
--- 5,11 ----
  
  #define N 32
  
! __attribute__ ((noinline)) int main1 ()
  {
    int i;
    unsigned short usb[N] = {0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45,0,65533,65530,65527,65524,65521,65518,65515,65512,65509,65506,65503,65500,65497,65494,65491};
Index: gcc.dg/vect/vect-iv-4.c
===================================================================
*** gcc.dg/vect/vect-iv-4.c	(revision 128072)
--- gcc.dg/vect/vect-iv-4.c	(working copy)
***************
*** 5,11 ****
  
  #define N 16
   
! int main1 ()
  {  
    unsigned int arr1[N];
    unsigned short arr2[N];
--- 5,11 ----
  
  #define N 16
   
! __attribute__ ((noinline)) int main1 ()
  {  
    unsigned int arr1[N];
    unsigned short arr2[N];
Index: gcc.dg/vect/vect-reduc-pattern-2c.c
===================================================================
*** gcc.dg/vect/vect-reduc-pattern-2c.c	(revision 128072)
--- gcc.dg/vect/vect-reduc-pattern-2c.c	(working copy)
*************** signed char data_ch[N] =
*** 8,14 ****
    { 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28 };
  #define SUM 210
  
! int
  foo ()
  {
    int i;
--- 8,14 ----
    { 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28 };
  #define SUM 210
  
! __attribute__ ((noinline)) int
  foo ()
  {
    int i;
Index: gcc.dg/vect/vect-reduc-dot-s8b.c
===================================================================
*** gcc.dg/vect/vect-reduc-dot-s8b.c	(revision 128072)
--- gcc.dg/vect/vect-reduc-dot-s8b.c	(working copy)
*************** signed char Y[N] __attribute__ ((__align
*** 26,32 ****
     Alternatively, the loop could also be vectorized as widening-mult + summation,
     or with type-conversion support.
   */
! short
  foo2(int len) {
    int i;
    short result = 0;
--- 26,32 ----
     Alternatively, the loop could also be vectorized as widening-mult + summation,
     or with type-conversion support.
   */
! __attribute__ ((noinline)) short
  foo2(int len) {
    int i;
    short result = 0;
Index: gcc.dg/vect/vect-30.c
===================================================================
*** gcc.dg/vect/vect-30.c	(revision 128072)
--- gcc.dg/vect/vect-30.c	(working copy)
*************** float b[N] = {0,2,4,6,8,10,12,14,16,18,2
*** 9,14 ****
--- 9,15 ----
  float a[N];
  float c[N];
  
+ __attribute__ ((noinline))
  int main1 (int n)
  {
    int i=0;
*************** int main1 (int n)
*** 29,34 ****
--- 30,36 ----
    return 0;
  }
  
+ __attribute__ ((noinline))
  int main2 (unsigned int n)
  {
    int i=0;
Index: gcc.dg/vect/vect-13.c
===================================================================
*** gcc.dg/vect/vect-13.c	(revision 128072)
--- gcc.dg/vect/vect-13.c	(working copy)
***************
*** 8,13 ****
--- 8,14 ----
  int a[N];
  int results[N] = {0,1,2,3,0,0,0,0,0,0,0,0,12,13,14,15};
  
+ __attribute__ ((noinline))
  int main1()
  {
    int i;
Index: gcc.dg/vect/vect-strided-a-u8-i2-gap.c
===================================================================
*** gcc.dg/vect/vect-strided-a-u8-i2-gap.c	(revision 128072)
--- gcc.dg/vect/vect-strided-a-u8-i2-gap.c	(working copy)
*************** typedef struct {
*** 10,16 ****
     unsigned char b;
  } s;
  
! int
  main1 ()
  {
    s arr[N];
--- 10,16 ----
     unsigned char b;
  } s;
  
! __attribute__ ((noinline)) int
  main1 ()
  {
    s arr[N];
Index: gcc.dg/vect/vect-iv-8a.c
===================================================================
*** gcc.dg/vect/vect-iv-8a.c	(revision 128072)
--- gcc.dg/vect/vect-iv-8a.c	(working copy)
***************
*** 5,11 ****
  
  #define N 26
   
! int main1 (short X)
  {  
    signed char a[N];
    short b[N];
--- 5,11 ----
  
  #define N 26
   
! __attribute__ ((noinline)) int main1 (short X)
  {  
    signed char a[N];
    short b[N];
Index: gcc.dg/vect/vect-strided-same-dr.c
===================================================================
*** gcc.dg/vect/vect-strided-same-dr.c	(revision 128072)
--- gcc.dg/vect/vect-strided-same-dr.c	(working copy)
*************** typedef struct {
*** 12,18 ****
  
  s buffer1[N], buffer2[N];
  
! int
  main1 (s * __restrict__  pIn, s* __restrict__ pOut)
  {
    unsigned short i, x, y, d;
--- 12,18 ----
  
  s buffer1[N], buffer2[N];
  
! __attribute__ ((noinline)) int
  main1 (s * __restrict__  pIn, s* __restrict__ pOut)
  {
    unsigned short i, x, y, d;
Index: gcc.dg/vect/vect-72.c
===================================================================
*** gcc.dg/vect/vect-72.c	(revision 128072)
--- gcc.dg/vect/vect-72.c	(working copy)
***************
*** 7,12 ****
--- 7,13 ----
  
  /* unaligned load.  */
  
+ __attribute__ ((noinline))
  int main1 ()
  {
    int i;
Index: gcc.dg/vect/vect-38.c
===================================================================
*** gcc.dg/vect/vect-38.c	(revision 128072)
--- gcc.dg/vect/vect-38.c	(working copy)
***************
*** 8,13 ****
--- 8,14 ----
  double cb[N] = {0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45};
  double ca[N];
  
+ __attribute__ ((noinline))
  int main1 ()
  {  
    int i;
Index: gcc.dg/vect/no-scevccp-outer-4.c
===================================================================
*** gcc.dg/vect/no-scevccp-outer-4.c	(revision 128072)
--- gcc.dg/vect/no-scevccp-outer-4.c	(working copy)
*************** int a[N];
*** 9,15 ****
  
  /* induction variable k advances through inner and outer loops.  */
  
! int
  foo (int n){
    int i,j,k=0;
    int sum;
--- 9,15 ----
  
  /* induction variable k advances through inner and outer loops.  */
  
! __attribute__ ((noinline)) int
  foo (int n){
    int i,j,k=0;
    int sum;
Index: gcc.dg/vect/vect-widen-mult-u16.c
===================================================================
*** gcc.dg/vect/vect-widen-mult-u16.c	(revision 128072)
--- gcc.dg/vect/vect-widen-mult-u16.c	(working copy)
*************** unsigned short Y[N] __attribute__ ((__al
*** 10,16 ****
  unsigned int result[N];
  
  /* short->int widening-mult */
! int
  foo1(int len) {
    int i;
  
--- 10,16 ----
  unsigned int result[N];
  
  /* short->int widening-mult */
! __attribute__ ((noinline)) int
  foo1(int len) {
    int i;
  
Index: gcc.dg/vect/vect-97.c
===================================================================
*** gcc.dg/vect/vect-97.c	(revision 128072)
--- gcc.dg/vect/vect-97.c	(working copy)
***************
*** 5,10 ****
--- 5,11 ----
  
  #define N 16
   
+ __attribute__ ((noinline))
  int main1 ()
  {  
    struct {
Index: gcc.dg/vect/vect-111.c
===================================================================
*** gcc.dg/vect/vect-111.c	(revision 128072)
--- gcc.dg/vect/vect-111.c	(working copy)
***************
*** 5,11 ****
  
  #define N 16
  
! int
  main1 (void)
  {
    int i;
--- 5,11 ----
  
  #define N 16
  
! __attribute__ ((noinline)) int
  main1 (void)
  {
    int i;
Index: gcc.dg/vect/vect-intfloat-conversion-2.c
===================================================================
*** gcc.dg/vect/vect-intfloat-conversion-2.c	(revision 128072)
--- gcc.dg/vect/vect-intfloat-conversion-2.c	(working copy)
***************
*** 5,11 ****
  
  #define N 32
  
! int main1 ()
  {
    int i;
    int int_arr[N] = {0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45,0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45};
--- 5,11 ----
  
  #define N 32
  
! __attribute__ ((noinline)) int main1 ()
  {
    int i;
    int int_arr[N] = {0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45,0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45};
Index: gcc.dg/vect/vect-outer-4d.c
===================================================================
*** gcc.dg/vect/vect-outer-4d.c	(revision 128072)
--- gcc.dg/vect/vect-outer-4d.c	(working copy)
*************** float out[N];
*** 10,16 ****
  
  /* Outer-loop vectorization.  */
  
! void
  foo (){
    int i,j;
    float diff;
--- 10,16 ----
  
  /* Outer-loop vectorization.  */
  
! __attribute__ ((noinline)) void
  foo (){
    int i,j;
    float diff;
Index: gcc.dg/vect/vect-5.c
===================================================================
*** gcc.dg/vect/vect-5.c	(revision 128072)
--- gcc.dg/vect/vect-5.c	(working copy)
***************
*** 5,10 ****
--- 5,11 ----
  
  #define N 16
  
+ __attribute__ ((noinline))
  int main1 ()
  {
    int i, j;
Index: gcc.dg/vect/vect-strided-mult-char-ls.c
===================================================================
*** gcc.dg/vect/vect-strided-mult-char-ls.c	(revision 128072)
--- gcc.dg/vect/vect-strided-mult-char-ls.c	(working copy)
*************** typedef struct {
*** 15,21 ****
     unsigned int b;
  } ii;
  
! int
  main1 (s *arr, ii *iarr)
  {
    s *ptr = arr;
--- 15,21 ----
     unsigned int b;
  } ii;
  
! __attribute__ ((noinline)) int
  main1 (s *arr, ii *iarr)
  {
    s *ptr = arr;
Index: gcc.dg/vect/vect-strided-store-a-u8-i2.c
===================================================================
*** gcc.dg/vect/vect-strided-store-a-u8-i2.c	(revision 128072)
--- gcc.dg/vect/vect-strided-store-a-u8-i2.c	(working copy)
*************** typedef struct {
*** 10,16 ****
     unsigned char b;
  } s;
  
! int
  main1 ()
  {
    s arr[N];
--- 10,16 ----
     unsigned char b;
  } s;
  
! __attribute__ ((noinline)) int
  main1 ()
  {
    s arr[N];
Index: gcc.dg/vect/vect-outer-4l.c
===================================================================
*** gcc.dg/vect/vect-outer-4l.c	(revision 128072)
--- gcc.dg/vect/vect-outer-4l.c	(working copy)
*************** unsigned char arr[N];
*** 11,17 ****
  /* Outer-loop vectorization. */
  /* Not vectorized due to multiple-types in the inner-loop.  */
  
! unsigned int
  foo (){
    int i,j;
    unsigned int diff;
--- 11,17 ----
  /* Outer-loop vectorization. */
  /* Not vectorized due to multiple-types in the inner-loop.  */
  
! __attribute__ ((noinline)) unsigned int
  foo (){
    int i,j;
    unsigned int diff;
*************** foo (){
*** 28,34 ****
    return s;
  }
  
! unsigned int
  bar (int i, unsigned int diff, unsigned short *in)
  {
      int j;
--- 28,34 ----
    return s;
  }
  
! __attribute__ ((noinline)) unsigned int
  bar (int i, unsigned int diff, unsigned short *in)
  {
      int j;
Index: gcc.dg/vect/vect-multitypes-2.c
===================================================================
*** gcc.dg/vect/vect-multitypes-2.c	(revision 128072)
--- gcc.dg/vect/vect-multitypes-2.c	(working copy)
***************
*** 5,11 ****
  
  #define N 32
  
! int main1 ()
  {
    int i;
    int ia[N];
--- 5,11 ----
  
  #define N 32
  
! __attribute__ ((noinline)) int main1 ()
  {
    int i;
    int ia[N];
Index: gcc.dg/vect/no-scevccp-outer-15.c
===================================================================
*** gcc.dg/vect/no-scevccp-outer-15.c	(revision 128072)
--- gcc.dg/vect/no-scevccp-outer-15.c	(working copy)
***************
*** 7,13 ****
  
  int a[N];
  
! int
  foo (int x){
    int i,j;
    int sum;
--- 7,13 ----
  
  int a[N];
  
! __attribute__ ((noinline)) int
  foo (int x){
    int i,j;
    int sum;
Index: gcc.dg/vect/vect-reduc-1short.c
===================================================================
*** gcc.dg/vect/vect-reduc-1short.c	(revision 128072)
--- gcc.dg/vect/vect-reduc-1short.c	(working copy)
***************
*** 6,12 ****
  #define N 16
  #define DIFF 242
  
! void
  main1 (unsigned short x, unsigned short max_result, unsigned short min_result)
  {
    int i;
--- 6,12 ----
  #define N 16
  #define DIFF 242
  
! __attribute__ ((noinline)) void
  main1 (unsigned short x, unsigned short max_result, unsigned short min_result)
  {
    int i;
Index: gcc.dg/vect/vect-strided-u16-i4.c
===================================================================
*** gcc.dg/vect/vect-strided-u16-i4.c	(revision 128072)
--- gcc.dg/vect/vect-strided-u16-i4.c	(working copy)
*************** typedef struct {
*** 12,18 ****
     unsigned short d;
  } s;
  
! int
  main1 (s *arr)
  {
    int i;
--- 12,18 ----
     unsigned short d;
  } s;
  
! __attribute__ ((noinline)) int
  main1 (s *arr)
  {
    int i;
Index: gcc.dg/vect/vect-strided-u32-i8.c
===================================================================
*** gcc.dg/vect/vect-strided-u32-i8.c	(revision 128072)
--- gcc.dg/vect/vect-strided-u32-i8.c	(working copy)
*************** typedef struct {
*** 16,22 ****
     int h;
  } s;
  
! int
  main1 (s *arr)
  {
    int i;
--- 16,22 ----
     int h;
  } s;
  
! __attribute__ ((noinline)) int
  main1 (s *arr)
  {
    int i;
Index: gcc.dg/vect/vect-22.c
===================================================================
*** gcc.dg/vect/vect-22.c	(revision 128072)
--- gcc.dg/vect/vect-22.c	(working copy)
***************
*** 6,12 ****
  
  #define N 64
  
! int
  main1 ()
  {
    int i;
--- 6,12 ----
  
  #define N 64
  
! __attribute__ ((noinline)) int
  main1 ()
  {
    int i;
Index: gcc.dg/vect/no-scevccp-noreassoc-outer-3.c
===================================================================
*** gcc.dg/vect/no-scevccp-noreassoc-outer-3.c	(revision 128072)
--- gcc.dg/vect/no-scevccp-noreassoc-outer-3.c	(working copy)
***************
*** 7,13 ****
  
  int a[N];
  
! int
  foo (){
    int i,j;
    int sum,x;
--- 7,13 ----
  
  int a[N];
  
! __attribute__ ((noinline)) int
  foo (){
    int i,j;
    int sum,x;
Index: gcc.dg/vect/vect-64.c
===================================================================
*** gcc.dg/vect/vect-64.c	(revision 128072)
--- gcc.dg/vect/vect-64.c	(working copy)
***************
*** 5,10 ****
--- 5,11 ----
  
  #define N 16
  
+ __attribute__ ((noinline))
  int main1 ()
  {
    int i, j;
Index: gcc.dg/vect/vect-89.c
===================================================================
*** gcc.dg/vect/vect-89.c	(revision 128072)
--- gcc.dg/vect/vect-89.c	(working copy)
*************** struct tmp_struct
*** 11,16 ****
--- 11,17 ----
    int y[N];
  };
  	 
+ __attribute__ ((noinline))
  int main1 ()
  {  
    int i, *q;
Index: gcc.dg/vect/no-tree-dom-vect-bug.c
===================================================================
*** gcc.dg/vect/no-tree-dom-vect-bug.c	(revision 128072)
--- gcc.dg/vect/no-tree-dom-vect-bug.c	(working copy)
***************
*** 5,11 ****
  
  long stack_vars_sorted[32];
  
! int
  main1 (long n)
  {
    long si;
--- 5,11 ----
  
  long stack_vars_sorted[32];
  
! __attribute__ ((noinline)) int
  main1 (long n)
  {
    long si;
Index: gcc.dg/vect/vect-103.c
===================================================================
*** gcc.dg/vect/vect-103.c	(revision 128072)
--- gcc.dg/vect/vect-103.c	(working copy)
*************** static int b[N] = {17,24,7,0,2,3,4,31,82
*** 17,22 ****
--- 17,23 ----
  static int c[N] = {9,17,24,7,0,2,3,4,31};
  volatile int foo;
  
+ __attribute__ ((noinline))
  int main1 (int x, int y) {
    int i;
    struct extraction *p;
Index: gcc.dg/vect/no-vfa-vect-51.c
===================================================================
*** gcc.dg/vect/no-vfa-vect-51.c	(revision 128072)
--- gcc.dg/vect/no-vfa-vect-51.c	(working copy)
***************
*** 5,10 ****
--- 5,11 ----
  
  #define N 256
  
+ __attribute__ ((noinline))
  void bar (const float *pa, const float *pb, const float *pc) 
  {
    int i;
*************** void bar (const float *pa, const float *
*** 27,33 ****
     vect-50.c is similar to this one with one difference:
          Aliasing is not a problem.  */
  
! int
  main1 (int n, float *pa, float *pb, float *pc)
  {
    int i;
--- 28,34 ----
     vect-50.c is similar to this one with one difference:
          Aliasing is not a problem.  */
  
! __attribute__ ((noinline)) int
  main1 (int n, float *pa, float *pb, float *pc)
  {
    int i;
Index: gcc.dg/vect/no-vfa-pr29145.c
===================================================================
*** gcc.dg/vect/no-vfa-pr29145.c	(revision 128072)
--- gcc.dg/vect/no-vfa-pr29145.c	(working copy)
***************
*** 3,8 ****
--- 3,9 ----
  #include <stdarg.h>
  #include "tree-vect.h"
  
+ __attribute__ ((noinline))
  void with_restrict(int * __restrict p)
  {
    int i;
*************** void with_restrict(int * __restrict p)
*** 13,18 ****
--- 14,20 ----
    }
  }
  
+ __attribute__ ((noinline))
  void without_restrict(int * p)
  {
    int i;
Index: gcc.dg/vect/wrapv-vect-reduc-pattern-2c.c
===================================================================
*** gcc.dg/vect/wrapv-vect-reduc-pattern-2c.c	(revision 128072)
--- gcc.dg/vect/wrapv-vect-reduc-pattern-2c.c	(working copy)
*************** signed char data_ch[N] =
*** 8,14 ****
    { 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28 };
  #define SUM 210
  
! int
  foo ()
  {
    int i;
--- 8,14 ----
    { 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28 };
  #define SUM 210
  
! __attribute__ ((noinline)) int
  foo ()
  {
    int i;
Index: gcc.dg/vect/vect-iv-5.c
===================================================================
*** gcc.dg/vect/vect-iv-5.c	(revision 128072)
--- gcc.dg/vect/vect-iv-5.c	(working copy)
***************
*** 5,11 ****
  
  #define N 16
   
! int main1 ()
  {  
    float arr[N];
    float f = 1.0;
--- 5,11 ----
  
  #define N 16
   
! __attribute__ ((noinline)) int main1 ()
  {  
    float arr[N];
    float f = 1.0;
Index: gcc.dg/vect/vect-reduc-dot-s8c.c
===================================================================
*** gcc.dg/vect/vect-reduc-dot-s8c.c	(revision 128072)
--- gcc.dg/vect/vect-reduc-dot-s8c.c	(working copy)
*************** signed char Y[N] __attribute__ ((__align
*** 13,19 ****
  /* char->int->int dot product. 
     Not detected as a dot-product pattern.
     Currently fails to be vectorized due to presence of type conversions. */
! int
  foo3(int len) {
    int i;
    int result = 0;
--- 13,19 ----
  /* char->int->int dot product. 
     Not detected as a dot-product pattern.
     Currently fails to be vectorized due to presence of type conversions. */
! __attribute__ ((noinline)) int
  foo3(int len) {
    int i;
    int result = 0;
Index: gcc.dg/vect/vect-11a.c
===================================================================
*** gcc.dg/vect/vect-11a.c	(revision 128072)
--- gcc.dg/vect/vect-11a.c	(working copy)
***************
*** 5,10 ****
--- 5,12 ----
  #include "tree-vect.h"
  
  extern void abort (void);
+ 
+ __attribute__ ((noinline))
  void u ()
  {  
    unsigned int A[4] = {0x08000000,0xffffffff,0xff0000ff,0xf0000001};
*************** void u ()
*** 19,24 ****
--- 21,28 ----
      if (C[i] != Answer[i])
        abort ();
  }
+ 
+ __attribute__ ((noinline))
  void s()
  {
    signed int A[4] = {0x08000000,0xffffffff,0xff0000ff,0xf0000001};
*************** void s()
*** 34,39 ****
--- 38,44 ----
        abort ();
  }
  
+ __attribute__ ((noinline))
  int main1 ()
  {
    u();
Index: gcc.dg/vect/vect-31.c
===================================================================
*** gcc.dg/vect/vect-31.c	(revision 128072)
--- gcc.dg/vect/vect-31.c	(working copy)
*************** struct s{
*** 18,23 ****
--- 18,24 ----
    struct t e;   /* unaligned (offset 2N+4N+4 B) */
  };
   
+ __attribute__ ((noinline))
  int main1 ()
  {  
    int i;
Index: gcc.dg/vect/vect-14.c
===================================================================
*** gcc.dg/vect/vect-14.c	(revision 128072)
--- gcc.dg/vect/vect-14.c	(working copy)
***************
*** 5,10 ****
--- 5,11 ----
  
  #define N 16
  
+ __attribute__ ((noinline))
  int main1 ()
  {
    int i;
Index: gcc.dg/vect/vect-73.c
===================================================================
*** gcc.dg/vect/vect-73.c	(revision 128072)
--- gcc.dg/vect/vect-73.c	(working copy)
*************** int ic[N*2];
*** 9,14 ****
--- 9,15 ----
  
  #define ia (ic+N)
  
+ __attribute__ ((noinline))
  int main1 ()
  {
    int i, j;
Index: gcc.dg/vect/vect-56.c
===================================================================
*** gcc.dg/vect/vect-56.c	(revision 128072)
--- gcc.dg/vect/vect-56.c	(working copy)
***************
*** 5,10 ****
--- 5,11 ----
  
  #define N 256
  
+ __attribute__ ((noinline))
  void bar (float *pa, float *pb, float *pc)
  {
    int i;
*************** void bar (float *pa, float *pb, float *p
*** 29,35 ****
     vect-57.c is similar to this one with two differences:
          aliasing is a problem, and the write access has unknown alignment.  */
  
! int
  main1 ()
  {
    int i;
--- 30,36 ----
     vect-57.c is similar to this one with two differences:
          aliasing is a problem, and the write access has unknown alignment.  */
  
! __attribute__ ((noinline)) int
  main1 ()
  {
    int i;
Index: gcc.dg/vect/vect-outer-2.c
===================================================================
*** gcc.dg/vect/vect-outer-2.c	(revision 128072)
--- gcc.dg/vect/vect-outer-2.c	(working copy)
*************** float out[N];
*** 8,14 ****
  
  /* Outer-loop vectorization.  */
  
! void
  foo (){
    int i,j;
  
--- 8,14 ----
  
  /* Outer-loop vectorization.  */
  
! __attribute__ ((noinline)) void
  foo (){
    int i,j;
  
Index: gcc.dg/vect/no-scevccp-outer-5.c
===================================================================
*** gcc.dg/vect/no-scevccp-outer-5.c	(revision 128072)
--- gcc.dg/vect/no-scevccp-outer-5.c	(working copy)
***************
*** 7,13 ****
  
  int a[N];
  
! int
  foo (){
    int i,j;
    int sum;
--- 7,13 ----
  
  int a[N];
  
! __attribute__ ((noinline)) int
  foo (){
    int i,j;
    int sum;
Index: gcc.dg/vect/vect-98.c
===================================================================
*** gcc.dg/vect/vect-98.c	(revision 128072)
--- gcc.dg/vect/vect-98.c	(working copy)
***************
*** 6,11 ****
--- 6,12 ----
  #define N 4
  #define DOT4( a, b )  ( a[0]*b[0] + a[1]*b[1] + a[2]*b[2] + a[3]*b[3] )
  
+ __attribute__ ((noinline))
  int main1 (int ia[][N])
  {
    int i, j;
Index: gcc.dg/vect/vect-strided-float.c
===================================================================
*** gcc.dg/vect/vect-strided-float.c	(revision 128072)
--- gcc.dg/vect/vect-strided-float.c	(working copy)
***************
*** 5,11 ****
  
  #define N 16
  
! int
  main1 (void)
  {
    int i;
--- 5,11 ----
  
  #define N 16
  
! __attribute__ ((noinline)) int
  main1 (void)
  {
    int i;
Index: gcc.dg/vect/vect-intfloat-conversion-3.c
===================================================================
*** gcc.dg/vect/vect-intfloat-conversion-3.c	(revision 128072)
--- gcc.dg/vect/vect-intfloat-conversion-3.c	(working copy)
***************
*** 5,11 ****
  
  #define N 32
  
! int main1 ()
  {
    int i;
    int ib[N] = {0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45,0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45};
--- 5,11 ----
  
  #define N 32
  
! __attribute__ ((noinline)) int main1 ()
  {
    int i;
    int ib[N] = {0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45,0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45};
Index: gcc.dg/vect/vect-112.c
===================================================================
*** gcc.dg/vect/vect-112.c	(revision 128072)
--- gcc.dg/vect/vect-112.c	(working copy)
***************
*** 5,11 ****
  
  #define N 16
  
! int
  main1 (void)
  {
    int i;
--- 5,11 ----
  
  #define N 16
  
! __attribute__ ((noinline)) int
  main1 (void)
  {
    int i;
Index: gcc.dg/vect/no-scevccp-outer-9a.c
===================================================================
*** gcc.dg/vect/no-scevccp-outer-9a.c	(revision 128072)
--- gcc.dg/vect/no-scevccp-outer-9a.c	(working copy)
***************
*** 7,13 ****
  
  int a[N];
  
! int
  foo (int n){
    int i,j;
    int sum;
--- 7,13 ----
  
  int a[N];
  
! __attribute__ ((noinline)) int
  foo (int n){
    int i,j;
    int sum;
Index: gcc.dg/vect/vect-6.c
===================================================================
*** gcc.dg/vect/vect-6.c	(revision 128072)
--- gcc.dg/vect/vect-6.c	(working copy)
***************
*** 8,13 ****
--- 8,14 ----
  float results1[N] = {192.00,240.00,288.00,336.00,384.00,432.00,480.00,528.00,0.00};
  float results2[N] = {0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,54.00,120.00,198.00,288.00,390.00,504.00,630.00};
  
+ __attribute__ ((noinline))
  int main1 ()
  {
    int i;
Index: gcc.dg/vect/no-vfa-vect-43.c
===================================================================
*** gcc.dg/vect/no-vfa-vect-43.c	(revision 128072)
--- gcc.dg/vect/no-vfa-vect-43.c	(working copy)
***************
*** 5,10 ****
--- 5,11 ----
  
  #define N 256
  
+ __attribute__ ((noinline))
  void bar (float *pa, float *pb, float *pc) 
  {
    int i;
*************** void bar (float *pa, float *pb, float *p
*** 20,26 ****
  }
  
  
! int
  main1 (float *pa)
  {
    int i;
--- 21,27 ----
  }
  
  
! __attribute__ ((noinline)) int
  main1 (float *pa)
  {
    int i;
*************** main1 (float *pa)
*** 38,44 ****
    return 0;
  }
  
! int
  main2 (float * pa)
  {
    int i;
--- 39,45 ----
    return 0;
  }
  
! __attribute__ ((noinline)) int
  main2 (float * pa)
  {
    int i;
Index: gcc.dg/vect/vect-strided-a-u8-i8-gap2.c
===================================================================
*** gcc.dg/vect/vect-strided-a-u8-i8-gap2.c	(revision 128072)
--- gcc.dg/vect/vect-strided-a-u8-i8-gap2.c	(working copy)
*************** typedef struct {
*** 17,23 ****
     unsigned char h;
  } s;
  
! int
  main1 ()
  {
    int i;
--- 17,23 ----
     unsigned char h;
  } s;
  
! __attribute__ ((noinline)) int
  main1 ()
  {
    int i;
Index: gcc.dg/vect/vect-outer-4m.c
===================================================================
*** gcc.dg/vect/vect-outer-4m.c	(revision 128072)
--- gcc.dg/vect/vect-outer-4m.c	(working copy)
*************** unsigned int out[N];
*** 10,16 ****
  /* Outer-loop vectorization. */
  /* Not vectorized due to multiple-types in the inner-loop.  */
  
! unsigned int
  foo (){
    int i,j;
    unsigned int diff;
--- 10,16 ----
  /* Outer-loop vectorization. */
  /* Not vectorized due to multiple-types in the inner-loop.  */
  
! __attribute__ ((noinline)) unsigned int
  foo (){
    int i,j;
    unsigned int diff;
Index: gcc.dg/vect/vect-widen-mult-s8.c
===================================================================
*** gcc.dg/vect/vect-widen-mult-s8.c	(revision 128072)
--- gcc.dg/vect/vect-widen-mult-s8.c	(working copy)
*************** signed char Y[N] __attribute__ ((__align
*** 10,16 ****
  short result[N];
  
  /* char->short widening-mult */
! int
  foo1(int len) {
    int i;
  
--- 10,16 ----
  short result[N];
  
  /* char->short widening-mult */
! __attribute__ ((noinline)) int
  foo1(int len) {
    int i;
  
Index: gcc.dg/vect/vect-multitypes-3.c
===================================================================
*** gcc.dg/vect/vect-multitypes-3.c	(revision 128072)
--- gcc.dg/vect/vect-multitypes-3.c	(working copy)
*************** short sb[N] __attribute__ ((__aligned__(
*** 12,17 ****
--- 12,18 ----
  char cb[N] __attribute__ ((__aligned__(16))) = 
  	{0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45,0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45};
  
+ __attribute__ ((noinline)) 
  int main1 (int n, int * __restrict__ pib, 
  	   short * __restrict__ psb, 
  	   char * __restrict__ pcb)
Index: gcc.dg/vect/pr25413.c
===================================================================
*** gcc.dg/vect/pr25413.c	(revision 128072)
--- gcc.dg/vect/pr25413.c	(working copy)
*************** struct
*** 11,16 ****
--- 11,17 ----
    double d[N];
  } a;
  
+ __attribute__ ((noinline))
  int main1()
  {
    int i;
Index: gcc.dg/vect/no-scevccp-outer-16.c
===================================================================
*** gcc.dg/vect/no-scevccp-outer-16.c	(revision 128072)
--- gcc.dg/vect/no-scevccp-outer-16.c	(working copy)
***************
*** 7,13 ****
  
  int a[N];
  
! int
  foo (){
    int i;
    unsigned short j;
--- 7,13 ----
  
  int a[N];
  
! __attribute__ ((noinline)) int
  foo (){
    int i;
    unsigned short j;
Index: gcc.dg/vect/vect-40.c
===================================================================
*** gcc.dg/vect/vect-40.c	(revision 128072)
--- gcc.dg/vect/vect-40.c	(working copy)
***************
*** 5,10 ****
--- 5,11 ----
  
  #define N 256
  
+ __attribute__ ((noinline))
  void bar (float *pa, float *pb, float *pc) 
  {
    int i;
*************** void bar (float *pa, float *pb, float *p
*** 25,31 ****
     vect-46.c is similar to this one with one difference: 
          the loop bound is unknown.  */
  
! int
  main1 ()
  {
    int i;
--- 26,32 ----
     vect-46.c is similar to this one with one difference: 
          the loop bound is unknown.  */
  
! __attribute__ ((noinline)) int
  main1 ()
  {
    int i;
Index: gcc.dg/vect/vect-23.c
===================================================================
*** gcc.dg/vect/vect-23.c	(revision 128072)
--- gcc.dg/vect/vect-23.c	(working copy)
***************
*** 5,11 ****
  
  #define N 64
  
! int
  main1 ()
  {
    int i;
--- 5,11 ----
  
  #define N 64
  
! __attribute__ ((noinline)) int
  main1 ()
  {
    int i;
Index: gcc.dg/vect/no-scevccp-noreassoc-outer-4.c
===================================================================
*** gcc.dg/vect/no-scevccp-noreassoc-outer-4.c	(revision 128072)
--- gcc.dg/vect/no-scevccp-noreassoc-outer-4.c	(working copy)
***************
*** 5,11 ****
  
  #define N 40
  
! int
  foo (){
    int i,j;
    int sum,s=0;
--- 5,11 ----
  
  #define N 40
  
! __attribute__ ((noinline)) int
  foo (){
    int i,j;
    int sum,s=0;
*************** foo (){
*** 21,26 ****
--- 21,27 ----
    return s;
  }
  
+ __attribute__ ((noinline))
  int bar (int i, int j)
  {
  return (i + j);
Index: gcc.dg/vect/vect-82.c
===================================================================
*** gcc.dg/vect/vect-82.c	(revision 128072)
--- gcc.dg/vect/vect-82.c	(working copy)
***************
*** 5,10 ****
--- 5,11 ----
  
  #define N 16
   
+ __attribute__ ((noinline))
  int main1 ()
  {  
    long long unsigned int ca[N];
Index: gcc.dg/vect/vect-65.c
===================================================================
*** gcc.dg/vect/vect-65.c	(revision 128072)
--- gcc.dg/vect/vect-65.c	(working copy)
***************
*** 6,11 ****
--- 6,12 ----
  #define N 16
  #define M 4
  
+ __attribute__ ((noinline))
  int main1 ()
  {
    int i, j;
Index: gcc.dg/vect/vect-48.c
===================================================================
*** gcc.dg/vect/vect-48.c	(revision 128072)
--- gcc.dg/vect/vect-48.c	(working copy)
***************
*** 15,21 ****
     vect-49.c is similar to this one with one difference:
          aliasing is a problem.  */
  
! int
  main1 (float *pb, float *pc)
  {
    float pa[N] __attribute__ ((__aligned__(16)));
--- 15,21 ----
     vect-49.c is similar to this one with one difference:
          aliasing is a problem.  */
  
! __attribute__ ((noinline)) int
  main1 (float *pb, float *pc)
  {
    float pa[N] __attribute__ ((__aligned__(16)));
Index: gcc.dg/vect/vect-reduc-dot-s16a.c
===================================================================
*** gcc.dg/vect/vect-reduc-dot-s16a.c	(revision 128072)
--- gcc.dg/vect/vect-reduc-dot-s16a.c	(working copy)
*************** signed short Y[N] __attribute__ ((__alig
*** 13,19 ****
     Detected as a dot-product pattern.
     Vectorized on targets that support dot-product for signed shorts.  */
  
! int
  foo (int len)
  {
    int i;
--- 13,19 ----
     Detected as a dot-product pattern.
     Vectorized on targets that support dot-product for signed shorts.  */
  
! __attribute__ ((noinline)) int
  foo (int len)
  {
    int i;
Index: gcc.dg/vect/vect-strided-u8-i8-gap4.c
===================================================================
*** gcc.dg/vect/vect-strided-u8-i8-gap4.c	(revision 128072)
--- gcc.dg/vect/vect-strided-u8-i8-gap4.c	(working copy)
*************** typedef struct {
*** 16,22 ****
     unsigned char h;
  } s;
  
! int
  main1 (s *arr)
  {
    int i;
--- 16,22 ----
     unsigned char h;
  } s;
  
! __attribute__ ((noinline)) int
  main1 (s *arr)
  {
    int i;
Index: gcc.dg/vect/vect-104.c
===================================================================
*** gcc.dg/vect/vect-104.c	(revision 128072)
--- gcc.dg/vect/vect-104.c	(working copy)
*************** static int b[N][N] = {{17,24,7},{0,2,3},
*** 17,22 ****
--- 17,23 ----
  static int c[N][N] = {{1,2,3},{4,6,8},{8,9,9}};
  volatile int foo;
  
+ __attribute__ ((noinline))
  int main1 (int x) {
    int i,j;
    struct extraction *p;
Index: gcc.dg/vect/vect-outer-fir.c
===================================================================
*** gcc.dg/vect/vect-outer-fir.c	(revision 128072)
--- gcc.dg/vect/vect-outer-fir.c	(working copy)
*************** float fir_out[N];
*** 15,20 ****
--- 15,21 ----
     because the compiler doesn't realize that the inner-loop executes at
     least once (cause k<4), and so there's no need to create a guard code
     to skip the inner-loop in case it doesn't execute.  */
+ __attribute__ ((noinline))
  void foo (){
   int i,j,k;
   float diff;
*************** void foo (){
*** 36,41 ****
--- 37,43 ----
  }
  
  /* Vectorized. Changing misalignment in the inner-loop.  */
+ __attribute__ ((noinline))
  void fir (){
    int i,j,k;
    float diff;
Index: gcc.dg/vect/vect-iv-6.c
===================================================================
*** gcc.dg/vect/vect-iv-6.c	(revision 128072)
--- gcc.dg/vect/vect-iv-6.c	(working copy)
***************
*** 5,11 ****
  
  #define N 16
   
! int main1 (int X)
  {  
    int arr1[N+1];
    int arr2[N+1];
--- 5,11 ----
  
  #define N 16
   
! __attribute__ ((noinline)) int main1 (int X)
  {  
    int arr1[N+1];
    int arr2[N+1];
Index: gcc.dg/vect/vect-strided-u32-mult.c
===================================================================
*** gcc.dg/vect/vect-strided-u32-mult.c	(revision 128072)
--- gcc.dg/vect/vect-strided-u32-mult.c	(working copy)
*************** typedef struct {
*** 10,16 ****
     unsigned int b;
  } ii;
  
! int
  main1 (unsigned short *arr, ii *iarr)
  {
    unsigned short *ptr = arr;
--- 10,16 ----
     unsigned int b;
  } ii;
  
! __attribute__ ((noinline)) int
  main1 (unsigned short *arr, ii *iarr)
  {
    unsigned short *ptr = arr;
Index: gcc.dg/vect/vect-32.c
===================================================================
*** gcc.dg/vect/vect-32.c	(revision 128072)
--- gcc.dg/vect/vect-32.c	(working copy)
***************
*** 5,10 ****
--- 5,11 ----
  
  #define N 16
   
+ __attribute__ ((noinline))
  int main1 ()
  {  
    struct {
Index: gcc.dg/vect/vect-15.c
===================================================================
*** gcc.dg/vect/vect-15.c	(revision 128072)
--- gcc.dg/vect/vect-15.c	(working copy)
***************
*** 5,10 ****
--- 5,11 ----
  
  #define N 16
  
+ __attribute__ ((noinline))
  int main1 ()
  {
    int i;
Index: gcc.dg/vect/no-trapping-math-2.c
===================================================================
*** gcc.dg/vect/no-trapping-math-2.c	(revision 128072)
--- gcc.dg/vect/no-trapping-math-2.c	(working copy)
***************
*** 6,12 ****
  
  #define N 16
  
! int
  main1 (void)
  {
    int i;
--- 6,12 ----
  
  #define N 16
  
! __attribute__ ((noinline)) int
  main1 (void)
  {
    int i;
Index: gcc.dg/vect/vect-float-truncate-1.c
===================================================================
*** gcc.dg/vect/vect-float-truncate-1.c	(revision 128072)
--- gcc.dg/vect/vect-float-truncate-1.c	(working copy)
***************
*** 5,11 ****
  
  #define N 32
  
! int
  main1 ()
  {
    int i;
--- 5,11 ----
  
  #define N 32
  
! __attribute__ ((noinline)) int
  main1 ()
  {
    int i;
Index: gcc.dg/vect/vect-91.c
===================================================================
*** gcc.dg/vect/vect-91.c	(revision 128072)
--- gcc.dg/vect/vect-91.c	(working copy)
*************** extern int a[N];
*** 13,19 ****
     the same alignment. Peeling to align one of the accesses will 
     align the other.  */
  
! int
  main1 (int * pa)
  {
    int i;
--- 13,19 ----
     the same alignment. Peeling to align one of the accesses will 
     align the other.  */
  
! __attribute__ ((noinline)) int
  main1 (int * pa)
  {
    int i;
*************** main1 (int * pa)
*** 31,37 ****
     the same alignment. Peeling to align one of the accesses will 
     align the other.  */
  
! int
  main2 ()
  {
    int i;
--- 31,37 ----
     the same alignment. Peeling to align one of the accesses will 
     align the other.  */
  
! __attribute__ ((noinline)) int
  main2 ()
  {
    int i;
*************** main2 ()
*** 44,50 ****
    return 0;
  }
  
! int 
  main3 ()
  {
    int i;
--- 44,50 ----
    return 0;
  }
  
! __attribute__ ((noinline)) int
  main3 ()
  {
    int i;
Index: gcc.dg/vect/vect-74.c
===================================================================
*** gcc.dg/vect/vect-74.c	(revision 128072)
--- gcc.dg/vect/vect-74.c	(working copy)
*************** float a[N] __attribute__ ((__aligned__(1
*** 13,19 ****
  float b[N+4] __attribute__ ((__aligned__(16))) = {0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 7.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0}; 
  float c[N] __attribute__ ((__aligned__(16))) = {0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 7.5, 9.5, 10.5, 11.5, 12.5, 13.5, 14.5, 15.5};
  
! int
  main1 (float *__restrict__  pa, float * __restrict__ pb, float * __restrict__ pc)
  {
    int i;
--- 13,19 ----
  float b[N+4] __attribute__ ((__aligned__(16))) = {0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 7.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0}; 
  float c[N] __attribute__ ((__aligned__(16))) = {0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 7.5, 9.5, 10.5, 11.5, 12.5, 13.5, 14.5, 15.5};
  
! __attribute__ ((noinline)) int
  main1 (float *__restrict__  pa, float * __restrict__ pb, float * __restrict__ pc)
  {
    int i;
Index: gcc.dg/vect/vect-outer-2a.c
===================================================================
*** gcc.dg/vect/vect-outer-2a.c	(revision 128072)
--- gcc.dg/vect/vect-outer-2a.c	(working copy)
***************
*** 5,11 ****
  #define N 40
  float image[N][N][N] __attribute__ ((__aligned__(16)));
  
! void
  foo (){
    int i,j,k;
  
--- 5,11 ----
  #define N 40
  float image[N][N][N] __attribute__ ((__aligned__(16)));
  
! __attribute__ ((noinline)) void
  foo (){
    int i,j,k;
  
Index: gcc.dg/vect/vect-outer-3.c
===================================================================
*** gcc.dg/vect/vect-outer-3.c	(revision 128072)
--- gcc.dg/vect/vect-outer-3.c	(working copy)
*************** float out[N];
*** 8,14 ****
  
  /* Outer-loop vectoriation.  */
  
! void
  foo (){
    int i,j;
    float diff;
--- 8,14 ----
  
  /* Outer-loop vectoriation.  */
  
! __attribute__ ((noinline)) void
  foo (){
    int i,j;
    float diff;
Index: gcc.dg/vect/vect-reduc-2char.c
===================================================================
*** gcc.dg/vect/vect-reduc-2char.c	(revision 128072)
--- gcc.dg/vect/vect-reduc-2char.c	(working copy)
***************
*** 6,11 ****
--- 6,12 ----
  #define N 16
  #define DIFF 121
  
+ __attribute__ ((noinline))
  void main1 (signed char x, signed char max_result, signed char min_result)
  {
    int i;
Index: gcc.dg/vect/no-scevccp-outer-6.c
===================================================================
*** gcc.dg/vect/no-scevccp-outer-6.c	(revision 128072)
--- gcc.dg/vect/no-scevccp-outer-6.c	(working copy)
***************
*** 5,11 ****
  
  #define N 40
  
! int
  foo (int * __restrict__ b, int k){
    int i,j;
    int sum,x;
--- 5,11 ----
  
  #define N 40
  
! __attribute__ ((noinline)) int
  foo (int * __restrict__ b, int k){
    int i,j;
    int sum,x;
Index: gcc.dg/vect/vect-99.c
===================================================================
*** gcc.dg/vect/vect-99.c	(revision 128072)
--- gcc.dg/vect/vect-99.c	(working copy)
***************
*** 2,7 ****
--- 2,8 ----
  
  int ca[100];
  
+ __attribute__ ((noinline))
  void foo (int n)
  {
    unsigned int i;
Index: gcc.dg/vect/vect-113.c
===================================================================
*** gcc.dg/vect/vect-113.c	(revision 128072)
--- gcc.dg/vect/vect-113.c	(working copy)
***************
*** 5,11 ****
  
  #define N 16
  
! int
  main1 (void)
  {
    int i;
--- 5,11 ----
  
  #define N 16
  
! __attribute__ ((noinline)) int
  main1 (void)
  {
    int i;
Index: gcc.dg/vect/no-scevccp-outer-9b.c
===================================================================
*** gcc.dg/vect/no-scevccp-outer-9b.c	(revision 128072)
--- gcc.dg/vect/no-scevccp-outer-9b.c	(working copy)
***************
*** 7,13 ****
  
  int a[N];
  
! int
  foo (int n){
    int i,j;
    int sum;
--- 7,13 ----
  
  int a[N];
  
! __attribute__ ((noinline)) int
  foo (int n){
    int i,j;
    int sum;
Index: gcc.dg/vect/vect-outer-4f.c
===================================================================
*** gcc.dg/vect/vect-outer-4f.c	(revision 128072)
--- gcc.dg/vect/vect-outer-4f.c	(working copy)
*************** unsigned char arr[N];
*** 11,17 ****
  /* Outer-loop vectorization. */
  /* Not vectorized due to multiple-types in the inner-loop.  */
  
! unsigned int
  foo (){
    int i,j;
    unsigned int diff;
--- 11,17 ----
  /* Outer-loop vectorization. */
  /* Not vectorized due to multiple-types in the inner-loop.  */
  
! __attribute__ ((noinline)) unsigned int
  foo (){
    int i,j;
    unsigned int diff;
*************** foo (){
*** 28,34 ****
    return s;
  }
  
! unsigned int
  bar (int i, unsigned int diff, unsigned short *in)
  {
      int j;
--- 28,34 ----
    return s;
  }
  
! __attribute__ ((noinline)) unsigned int
  bar (int i, unsigned int diff, unsigned short *in)
  {
      int j;
Index: gcc.dg/vect/vect-7.c
===================================================================
*** gcc.dg/vect/vect-7.c	(revision 128072)
--- gcc.dg/vect/vect-7.c	(working copy)
***************
*** 5,10 ****
--- 5,11 ----
  
  #define N 128
  
+ __attribute__ ((noinline))
  int main1 ()
  {
    int i;
Index: gcc.dg/vect/no-vfa-vect-61.c
===================================================================
*** gcc.dg/vect/no-vfa-vect-61.c	(revision 128072)
--- gcc.dg/vect/no-vfa-vect-61.c	(working copy)
***************
*** 6,11 ****
--- 6,12 ----
  
  #define N 256
  
+ __attribute__ ((noinline))
  void bar (float *pa, float *pb, float *pc)
  {
    int i;
*************** void bar (float *pa, float *pb, float *p
*** 29,35 ****
     vect-60.c is similar to this one with two differences:
          aliasing is not a problem, and the write access is unaligned.  */
  
! int
  main1 (int n , float *pa)
  {
    int i;
--- 30,36 ----
     vect-60.c is similar to this one with two differences:
          aliasing is not a problem, and the write access is unaligned.  */
  
! __attribute__ ((noinline)) int
  main1 (int n , float *pa)
  {
    int i;
Index: gcc.dg/vect/vect-multitypes-4.c
===================================================================
*** gcc.dg/vect/vect-multitypes-4.c	(revision 128072)
--- gcc.dg/vect/vect-multitypes-4.c	(working copy)
*************** unsigned int ib[N] = {0,3,6,9,12,15,18,2
*** 22,27 ****
--- 22,28 ----
     which will also align the access to 'ia[i+3]', and the loop could be
     vectorized on all targets that support unaligned loads.  */
  
+ __attribute__ ((noinline))
  int main1 (int n)
  {
    int i;
*************** int main1 (int n)
*** 51,56 ****
--- 52,58 ----
     need to peel 5,1 iterations for VF=4,2 respectively, so the loop can not 
     be vectorized.  */
  
+ __attribute__ ((noinline))
  int main2 (int n)
  {
    int i;
Index: gcc.dg/vect/no-scevccp-outer-17.c
===================================================================
*** gcc.dg/vect/no-scevccp-outer-17.c	(revision 128072)
--- gcc.dg/vect/no-scevccp-outer-17.c	(working copy)
*************** int a[N];
*** 9,15 ****
  int b[N];
  int c[N];
  
! int
  foo (){
    int i;
    unsigned short j;
--- 9,15 ----
  int b[N];
  int c[N];
  
! __attribute__ ((noinline)) int
  foo (){
    int i;
    unsigned short j;
Index: gcc.dg/vect/vect-24.c
===================================================================
*** gcc.dg/vect/vect-24.c	(revision 128072)
--- gcc.dg/vect/vect-24.c	(working copy)
***************
*** 5,11 ****
  
  #define N 64
  
! int
  main1 ()
  {
    int i;
--- 5,11 ----
  
  #define N 64
  
! __attribute__ ((noinline)) int
  main1 ()
  {
    int i;
Index: gcc.dg/vect/no-scevccp-noreassoc-outer-5.c
===================================================================
*** gcc.dg/vect/no-scevccp-noreassoc-outer-5.c	(revision 128072)
--- gcc.dg/vect/no-scevccp-noreassoc-outer-5.c	(working copy)
***************
*** 7,13 ****
  
  int a[N];
  
! int
  foo (){
    int i,j;
    int sum,x;
--- 7,13 ----
  
  int a[N];
  
! __attribute__ ((noinline)) int
  foo (){
    int i,j;
    int sum,x;
Index: gcc.dg/vect/vect-83.c
===================================================================
*** gcc.dg/vect/vect-83.c	(revision 128072)
--- gcc.dg/vect/vect-83.c	(working copy)
***************
*** 5,10 ****
--- 5,11 ----
  
  #define N 16
   
+ __attribute__ ((noinline))
  int main1 ()
  {  
    long long unsigned int ca[N];
Index: gcc.dg/vect/vect-66.c
===================================================================
*** gcc.dg/vect/vect-66.c	(revision 128072)
--- gcc.dg/vect/vect-66.c	(working copy)
***************
*** 5,10 ****
--- 5,11 ----
  
  #define N 16
  
+ __attribute__ ((noinline))
  int main1 ()
  {
    int i, j;
Index: gcc.dg/vect/wrapv-vect-reduc-2char.c
===================================================================
*** gcc.dg/vect/wrapv-vect-reduc-2char.c	(revision 128072)
--- gcc.dg/vect/wrapv-vect-reduc-2char.c	(working copy)
***************
*** 6,11 ****
--- 6,12 ----
  #define N 16
  #define DIFF 121
  
+ __attribute__ ((noinline))
  void main1 (signed char x, signed char max_result, signed char min_result)
  {
    int i;


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]