1 // RUN: %clang_cc1 -fsyntax-only -verify -Wno-unreachable-code %s
2 
3 typedef __attribute__(( ext_vector_type(4) )) int int4;
4 
test1()5 static int4 test1() {
6   int4 vec, rv;
7 
8   // comparisons to self...
9   return vec == vec; // expected-warning{{self-comparison always evaluates to a constant}}
10   return vec != vec; // expected-warning{{self-comparison always evaluates to a constant}}
11   return vec < vec; // expected-warning{{self-comparison always evaluates to a constant}}
12   return vec <= vec; // expected-warning{{self-comparison always evaluates to a constant}}
13   return vec > vec; // expected-warning{{self-comparison always evaluates to a constant}}
14   return vec >= vec; // expected-warning{{self-comparison always evaluates to a constant}}
15 }
16 
17 
18 typedef __attribute__(( ext_vector_type(4) )) float float4;
19 
test2()20 static int4 test2() {
21   float4 vec, rv;
22 
23   // comparisons to self.  no warning, they're floats
24   return vec == vec; // no-warning
25   return vec != vec; // no-warning
26   return vec < vec;  // no-warning
27   return vec <= vec; // no-warning
28   return vec > vec;  // no-warning
29   return vec >= vec; // no-warning
30 }
31