// RUN: %clang_cc1 -finclude-default-header -triple dxil-pc-shadermodel6.6-library %s -fnative-half-type -emit-llvm-only -disable-llvm-passes -verify export double2 double_vec_mod_by_int(double2 p1) { return p1 % 2; // expected-error@-1 {{invalid operands to binary expression ('double2' (aka 'vector') and 'int')}} } export double2 double_vec_mod_by_float(double2 p1) { return p1 % 2.0; // expected-error@-1 {{invalid operands to binary expression ('double2' (aka 'vector') and 'float')}} } export double2 double_vec_mod_by_double(double2 p1, double p2 ) { return p1 % p2; // expected-error@-1 {{invalid operands to binary expression ('double2' (aka 'vector') and 'double')}} } export double2 double_vec_mod_by_double_vec(double2 p1, double2 p2 ) { return p1 % p2; // expected-error@-1 {{invalid operands to binary expression ('double2' (aka 'vector') and 'double2')}} } export double double_mod_by_int(double p1) { return p1 % 2; // expected-error@-1 {{invalid operands to binary expression ('double' and 'int')}} } export double double_mod_by_float(double p1) { return p1 % 2.0; // expected-error@-1 {{invalid operands to binary expression ('double' and 'float')}} } export double double_mod_by_double(double p1, double p2 ) { return p1 % p2; // expected-error@-1 {{invalid operands to binary expression ('double' and 'double')}} } export double double_mod_by_double_vec(double p1, double2 p2 ) { return p1 % p2; // expected-error@-1 {{invalid operands to binary expression ('double' and 'double2' (aka 'vector'))}} }