This file is indexed.

/usr/lib/x86_64-linux-gnu/beignet/include/ocl_integer.h is in beignet-opencl-icd 1.3.2-2.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

   1
   2
   3
   4
   5
   6
   7
   8
   9
  10
  11
  12
  13
  14
  15
  16
  17
  18
  19
  20
  21
  22
  23
  24
  25
  26
  27
  28
  29
  30
  31
  32
  33
  34
  35
  36
  37
  38
  39
  40
  41
  42
  43
  44
  45
  46
  47
  48
  49
  50
  51
  52
  53
  54
  55
  56
  57
  58
  59
  60
  61
  62
  63
  64
  65
  66
  67
  68
  69
  70
  71
  72
  73
  74
  75
  76
  77
  78
  79
  80
  81
  82
  83
  84
  85
  86
  87
  88
  89
  90
  91
  92
  93
  94
  95
  96
  97
  98
  99
 100
 101
 102
 103
 104
 105
 106
 107
 108
 109
 110
 111
 112
 113
 114
 115
 116
 117
 118
 119
 120
 121
 122
 123
 124
 125
 126
 127
 128
 129
 130
 131
 132
 133
 134
 135
 136
 137
 138
 139
 140
 141
 142
 143
 144
 145
 146
 147
 148
 149
 150
 151
 152
 153
 154
 155
 156
 157
 158
 159
 160
 161
 162
 163
 164
 165
 166
 167
 168
 169
 170
 171
 172
 173
 174
 175
 176
 177
 178
 179
 180
 181
 182
 183
 184
 185
 186
 187
 188
 189
 190
 191
 192
 193
 194
 195
 196
 197
 198
 199
 200
 201
 202
 203
 204
 205
 206
 207
 208
 209
 210
 211
 212
 213
 214
 215
 216
 217
 218
 219
 220
 221
 222
 223
 224
 225
 226
 227
 228
 229
 230
 231
 232
 233
 234
 235
 236
 237
 238
 239
 240
 241
 242
 243
 244
 245
 246
 247
 248
 249
 250
 251
 252
 253
 254
 255
 256
 257
 258
 259
 260
 261
 262
 263
 264
 265
 266
 267
 268
 269
 270
 271
 272
 273
 274
 275
 276
 277
 278
 279
 280
 281
 282
 283
 284
 285
 286
 287
 288
 289
 290
 291
 292
 293
 294
 295
 296
 297
 298
 299
 300
 301
 302
 303
 304
 305
 306
 307
 308
 309
 310
 311
 312
 313
 314
 315
 316
 317
 318
 319
 320
 321
 322
 323
 324
 325
 326
 327
 328
 329
 330
 331
 332
 333
 334
 335
 336
 337
 338
 339
 340
 341
 342
 343
 344
 345
 346
 347
 348
 349
 350
 351
 352
 353
 354
 355
 356
 357
 358
 359
 360
 361
 362
 363
 364
 365
 366
 367
 368
 369
 370
 371
 372
 373
 374
 375
 376
 377
 378
 379
 380
 381
 382
 383
 384
 385
 386
 387
 388
 389
 390
 391
 392
 393
 394
 395
 396
 397
 398
 399
 400
 401
 402
 403
 404
 405
 406
 407
 408
 409
 410
 411
 412
 413
 414
 415
 416
 417
 418
 419
 420
 421
 422
 423
 424
 425
 426
 427
 428
 429
 430
 431
 432
 433
 434
 435
 436
 437
 438
 439
 440
 441
 442
 443
 444
 445
 446
 447
 448
 449
 450
 451
 452
 453
 454
 455
 456
 457
 458
 459
 460
 461
 462
 463
 464
 465
 466
 467
 468
 469
 470
 471
 472
 473
 474
 475
 476
 477
 478
 479
 480
 481
 482
 483
 484
 485
 486
 487
 488
 489
 490
 491
 492
 493
 494
 495
 496
 497
 498
 499
 500
 501
 502
 503
 504
 505
 506
 507
 508
 509
 510
 511
 512
 513
 514
 515
 516
 517
 518
 519
 520
 521
 522
 523
 524
 525
 526
 527
 528
 529
 530
 531
 532
 533
 534
 535
 536
 537
 538
 539
 540
 541
 542
 543
 544
 545
 546
 547
 548
 549
 550
 551
 552
 553
 554
 555
 556
 557
 558
 559
 560
 561
 562
 563
 564
 565
 566
 567
 568
 569
 570
 571
 572
 573
 574
 575
 576
 577
 578
 579
 580
 581
 582
 583
 584
 585
 586
 587
 588
 589
 590
 591
 592
 593
 594
 595
 596
 597
 598
 599
 600
 601
 602
 603
 604
 605
 606
 607
 608
 609
 610
 611
 612
 613
 614
 615
 616
 617
 618
 619
 620
 621
 622
 623
 624
 625
 626
 627
 628
 629
 630
 631
 632
 633
 634
 635
 636
 637
 638
 639
 640
 641
 642
 643
 644
 645
 646
 647
 648
 649
 650
 651
 652
 653
 654
 655
 656
 657
 658
 659
 660
 661
 662
 663
 664
 665
 666
 667
 668
 669
 670
 671
 672
 673
 674
 675
 676
 677
 678
 679
 680
 681
 682
 683
 684
 685
 686
 687
 688
 689
 690
 691
 692
 693
 694
 695
 696
 697
 698
 699
 700
 701
 702
 703
 704
 705
 706
 707
 708
 709
 710
 711
 712
 713
 714
 715
 716
 717
 718
 719
 720
 721
 722
 723
 724
 725
 726
 727
 728
 729
 730
 731
 732
 733
 734
 735
 736
 737
 738
 739
 740
 741
 742
 743
 744
 745
 746
 747
 748
 749
 750
 751
 752
 753
 754
 755
 756
 757
 758
 759
 760
 761
 762
 763
 764
 765
 766
 767
 768
 769
 770
 771
 772
 773
 774
 775
 776
 777
 778
 779
 780
 781
 782
 783
 784
 785
 786
 787
 788
 789
 790
 791
 792
 793
 794
 795
 796
 797
 798
 799
 800
 801
 802
 803
 804
 805
 806
 807
 808
 809
 810
 811
 812
 813
 814
 815
 816
 817
 818
 819
 820
 821
 822
 823
 824
 825
 826
 827
 828
 829
 830
 831
 832
 833
 834
 835
 836
 837
 838
 839
 840
 841
 842
 843
 844
 845
 846
 847
 848
 849
 850
 851
 852
 853
 854
 855
 856
 857
 858
 859
 860
 861
 862
 863
 864
 865
 866
 867
 868
 869
 870
 871
 872
 873
 874
 875
 876
 877
 878
 879
 880
 881
 882
 883
 884
 885
 886
 887
 888
 889
 890
 891
 892
 893
 894
 895
 896
 897
 898
 899
 900
 901
 902
 903
 904
 905
 906
 907
 908
 909
 910
 911
 912
 913
 914
 915
 916
 917
 918
 919
 920
 921
 922
 923
 924
 925
 926
 927
 928
 929
 930
 931
 932
 933
 934
 935
 936
 937
 938
 939
 940
 941
 942
 943
 944
 945
 946
 947
 948
 949
 950
 951
 952
 953
 954
 955
 956
 957
 958
 959
 960
 961
 962
 963
 964
 965
 966
 967
 968
 969
 970
 971
 972
 973
 974
 975
 976
 977
 978
 979
 980
 981
 982
 983
 984
 985
 986
 987
 988
 989
 990
 991
 992
 993
 994
 995
 996
 997
 998
 999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
/*
 * Copyright © 2012 - 2014 Intel Corporation
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2.1 of the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library. If not, see <http://www.gnu.org/licenses/>.
 *
 */
#ifndef __OCL_INTEGER_H__
#define __OCL_INTEGER_H__

#include "ocl_types.h"

#define CHAR_BIT    8
#define CHAR_MAX    SCHAR_MAX
#define CHAR_MIN    SCHAR_MIN
#define INT_MAX     2147483647
#define INT_MIN     (-2147483647 - 1)
#define LONG_MAX    0x7fffffffffffffffL
#define LONG_MIN    (-0x7fffffffffffffffL - 1)
#define SCHAR_MAX   127
#define SCHAR_MIN   (-127 - 1)
#define SHRT_MAX    32767
#define SHRT_MIN    (-32767 - 1)
#define UCHAR_MAX   255
#define USHRT_MAX   65535
#define UINT_MAX    0xffffffff
#define ULONG_MAX   0xffffffffffffffffUL

OVERLOADABLE char clz(char x);
OVERLOADABLE uchar clz(uchar x);
OVERLOADABLE short clz(short x);
OVERLOADABLE ushort clz(ushort x);
OVERLOADABLE int clz(int x);
OVERLOADABLE uint clz(uint x);
OVERLOADABLE long clz(long x);
OVERLOADABLE ulong clz(ulong x);

char   clz_s8(char);
uchar  clz_u8(uchar);
short  clz_s16(short);
ushort clz_u16(ushort);
int    clz_s32(int);
uint   clz_u32(uint);
long   clz_s64(long);
ulong  clz_u64(ulong);

OVERLOADABLE char ctz(char x);
OVERLOADABLE uchar ctz(uchar x);
OVERLOADABLE short ctz(short x);
OVERLOADABLE ushort ctz(ushort x);
OVERLOADABLE int ctz(int x);
OVERLOADABLE uint ctz(uint x);
OVERLOADABLE long ctz(long x);
OVERLOADABLE ulong ctz(ulong x);

char   ctz_s8(char);
uchar  ctz_u8(uchar);
short  ctz_s16(short);
ushort ctz_u16(ushort);
int    ctz_s32(int);
uint   ctz_u32(uint);
long   ctz_s64(long);
ulong  ctz_u64(ulong);

OVERLOADABLE char popcount(char x);
OVERLOADABLE uchar popcount(uchar x);
OVERLOADABLE short popcount(short x);
OVERLOADABLE ushort popcount(ushort x);
OVERLOADABLE int popcount(int x);
OVERLOADABLE uint popcount(uint x);
OVERLOADABLE long popcount(long x);
OVERLOADABLE ulong popcount(ulong x);

OVERLOADABLE char mul_hi(char x, char y);
OVERLOADABLE uchar mul_hi(uchar x, uchar y);
OVERLOADABLE short mul_hi(short x, short y);
OVERLOADABLE ushort mul_hi(ushort x, ushort y);
OVERLOADABLE int mul_hi(int x, int y);
OVERLOADABLE uint mul_hi(uint x, uint y);
OVERLOADABLE long mul_hi(long x, long y);
OVERLOADABLE ulong mul_hi(ulong x, ulong y);

#define SDEF(TYPE)        \
OVERLOADABLE TYPE add_sat(TYPE x, TYPE y);   \
OVERLOADABLE TYPE sub_sat(TYPE x, TYPE y);
SDEF(char);
SDEF(short);
SDEF(int);
SDEF(long);
#undef SDEF
#define UDEF(TYPE)  \
OVERLOADABLE TYPE add_sat(TYPE x, TYPE y);   \
OVERLOADABLE TYPE sub_sat(TYPE x, TYPE y);
UDEF(uchar);
UDEF(ushort);
UDEF(uint);
UDEF(ulong);
#undef UDEF

#define DEF(type) OVERLOADABLE type mad_hi(type a, type b, type c);
DEF(char)
DEF(uchar)
DEF(short)
DEF(ushort)
DEF(int)
DEF(uint)
DEF(long)
DEF(ulong)
#undef DEF

OVERLOADABLE int mul24(int a, int b);
OVERLOADABLE uint mul24(uint a, uint b);

OVERLOADABLE int mad24(int a, int b, int c);
OVERLOADABLE uint mad24(uint a, uint b, uint c);

OVERLOADABLE char mad_sat(char a, char b, char c) ;
OVERLOADABLE uchar mad_sat(uchar a, uchar b, uchar c);
OVERLOADABLE short mad_sat(short a, short b, short c);
OVERLOADABLE ushort mad_sat(ushort a, ushort b, ushort c);
OVERLOADABLE int mad_sat(int a, int b, int c);
OVERLOADABLE uint mad_sat(uint a, uint b, uint c);
OVERLOADABLE long mad_sat(long a, long b, long c);
OVERLOADABLE ulong mad_sat(ulong a, ulong b, ulong c);

#define DEF(type, m) OVERLOADABLE type rotate(type x, type y);
DEF(char, 7)
DEF(uchar, 7)
DEF(short, 15)
DEF(ushort, 15)
DEF(int, 31)
DEF(uint, 31)
DEF(long, 63)
DEF(ulong, 63)
#undef DEF

OVERLOADABLE short upsample(char hi, uchar lo);
OVERLOADABLE ushort upsample(uchar hi, uchar lo);
OVERLOADABLE int upsample(short hi, ushort lo);
OVERLOADABLE uint upsample(ushort hi, ushort lo);
OVERLOADABLE long upsample(int hi, uint lo);
OVERLOADABLE ulong upsample(uint hi, uint lo);

#define DEC DEF(char); DEF(uchar); DEF(short); DEF(ushort)
#define DEF(type) OVERLOADABLE type hadd(type x, type y);
DEC
#undef DEF
#define DEF(type) OVERLOADABLE type rhadd(type x, type y);
DEC
#undef DEF
#undef DEC
OVERLOADABLE int hadd(int x, int y);
OVERLOADABLE uint hadd(uint x, uint y);
OVERLOADABLE int rhadd(int x, int y);
OVERLOADABLE uint rhadd(uint x, uint y);
OVERLOADABLE long hadd(long x, long y);
OVERLOADABLE ulong hadd(ulong x, ulong y);
OVERLOADABLE long rhadd(long x, long y);
OVERLOADABLE ulong rhadd(ulong x, ulong y);

#define DEC(TYPE) OVERLOADABLE u##TYPE abs(TYPE x);
DEC(int)
DEC(short)
DEC(char)
#undef DEC
OVERLOADABLE ulong abs(long x);
/* For unsigned types, do nothing. */
#define DEC(TYPE) OVERLOADABLE TYPE abs(TYPE x);
DEC(uint)
DEC(ushort)
DEC(uchar)
DEC(ulong)
#undef DEC

/* Char and short type abs diff */
/* promote char and short to int and will be no module overflow */
#define DEC(TYPE, UTYPE) OVERLOADABLE UTYPE abs_diff(TYPE x, TYPE y);
DEC(char, uchar)
DEC(uchar, uchar)
DEC(short, ushort)
DEC(ushort, ushort)
#undef DEC

OVERLOADABLE uint abs_diff (uint x, uint y);
OVERLOADABLE uint abs_diff (int x, int y);
OVERLOADABLE ulong abs_diff (long x, long y);
OVERLOADABLE ulong abs_diff (ulong x, ulong y);


#define DECL_MIN_MAX_CLAMP(TYPE) \
OVERLOADABLE TYPE max(TYPE a, TYPE b);  \
OVERLOADABLE TYPE min(TYPE a, TYPE b);  \
OVERLOADABLE TYPE clamp(TYPE v, TYPE l, TYPE u);
DECL_MIN_MAX_CLAMP(int)
DECL_MIN_MAX_CLAMP(short)
DECL_MIN_MAX_CLAMP(char)
DECL_MIN_MAX_CLAMP(uint)
DECL_MIN_MAX_CLAMP(unsigned short)
DECL_MIN_MAX_CLAMP(unsigned char)
DECL_MIN_MAX_CLAMP(long)
DECL_MIN_MAX_CLAMP(ulong)
#undef DECL_MIN_MAX_CLAMP
//Begin from this part is autogenerated.
//Don't modify it manually.
//integer builtin functions
//ugentype abs (gentype x)

OVERLOADABLE uchar2 abs (char2 param0);
OVERLOADABLE uchar3 abs (char3 param0);
OVERLOADABLE uchar4 abs (char4 param0);
OVERLOADABLE uchar8 abs (char8 param0);
OVERLOADABLE uchar16 abs (char16 param0);
OVERLOADABLE ushort2 abs (short2 param0);
OVERLOADABLE ushort3 abs (short3 param0);
OVERLOADABLE ushort4 abs (short4 param0);
OVERLOADABLE ushort8 abs (short8 param0);
OVERLOADABLE ushort16 abs (short16 param0);
OVERLOADABLE uint2 abs (int2 param0);
OVERLOADABLE uint3 abs (int3 param0);
OVERLOADABLE uint4 abs (int4 param0);
OVERLOADABLE uint8 abs (int8 param0);
OVERLOADABLE uint16 abs (int16 param0);
OVERLOADABLE ulong2 abs (long2 param0);
OVERLOADABLE ulong3 abs (long3 param0);
OVERLOADABLE ulong4 abs (long4 param0);
OVERLOADABLE ulong8 abs (long8 param0);
OVERLOADABLE ulong16 abs (long16 param0);
OVERLOADABLE uchar2 abs (uchar2 param0);
OVERLOADABLE uchar3 abs (uchar3 param0);
OVERLOADABLE uchar4 abs (uchar4 param0);
OVERLOADABLE uchar8 abs (uchar8 param0);
OVERLOADABLE uchar16 abs (uchar16 param0);
OVERLOADABLE ushort2 abs (ushort2 param0);
OVERLOADABLE ushort3 abs (ushort3 param0);
OVERLOADABLE ushort4 abs (ushort4 param0);
OVERLOADABLE ushort8 abs (ushort8 param0);
OVERLOADABLE ushort16 abs (ushort16 param0);
OVERLOADABLE uint2 abs (uint2 param0);
OVERLOADABLE uint3 abs (uint3 param0);
OVERLOADABLE uint4 abs (uint4 param0);
OVERLOADABLE uint8 abs (uint8 param0);
OVERLOADABLE uint16 abs (uint16 param0);
OVERLOADABLE ulong2 abs (ulong2 param0);
OVERLOADABLE ulong3 abs (ulong3 param0);
OVERLOADABLE ulong4 abs (ulong4 param0);
OVERLOADABLE ulong8 abs (ulong8 param0);
OVERLOADABLE ulong16 abs (ulong16 param0);

//ugentype abs_diff (gentype x, gentype y)

OVERLOADABLE uchar2 abs_diff (char2 param0, char2 param1);
OVERLOADABLE uchar3 abs_diff (char3 param0, char3 param1);
OVERLOADABLE uchar4 abs_diff (char4 param0, char4 param1);
OVERLOADABLE uchar8 abs_diff (char8 param0, char8 param1);
OVERLOADABLE uchar16 abs_diff (char16 param0, char16 param1);
OVERLOADABLE ushort2 abs_diff (short2 param0, short2 param1);
OVERLOADABLE ushort3 abs_diff (short3 param0, short3 param1);
OVERLOADABLE ushort4 abs_diff (short4 param0, short4 param1);
OVERLOADABLE ushort8 abs_diff (short8 param0, short8 param1);
OVERLOADABLE ushort16 abs_diff (short16 param0, short16 param1);
OVERLOADABLE uint2 abs_diff (int2 param0, int2 param1);
OVERLOADABLE uint3 abs_diff (int3 param0, int3 param1);
OVERLOADABLE uint4 abs_diff (int4 param0, int4 param1);
OVERLOADABLE uint8 abs_diff (int8 param0, int8 param1);
OVERLOADABLE uint16 abs_diff (int16 param0, int16 param1);
OVERLOADABLE ulong2 abs_diff (long2 param0, long2 param1);
OVERLOADABLE ulong3 abs_diff (long3 param0, long3 param1);
OVERLOADABLE ulong4 abs_diff (long4 param0, long4 param1);
OVERLOADABLE ulong8 abs_diff (long8 param0, long8 param1);
OVERLOADABLE ulong16 abs_diff (long16 param0, long16 param1);
OVERLOADABLE uchar2 abs_diff (uchar2 param0, uchar2 param1);
OVERLOADABLE uchar3 abs_diff (uchar3 param0, uchar3 param1);
OVERLOADABLE uchar4 abs_diff (uchar4 param0, uchar4 param1);
OVERLOADABLE uchar8 abs_diff (uchar8 param0, uchar8 param1);
OVERLOADABLE uchar16 abs_diff (uchar16 param0, uchar16 param1);
OVERLOADABLE ushort2 abs_diff (ushort2 param0, ushort2 param1);
OVERLOADABLE ushort3 abs_diff (ushort3 param0, ushort3 param1);
OVERLOADABLE ushort4 abs_diff (ushort4 param0, ushort4 param1);
OVERLOADABLE ushort8 abs_diff (ushort8 param0, ushort8 param1);
OVERLOADABLE ushort16 abs_diff (ushort16 param0, ushort16 param1);
OVERLOADABLE uint2 abs_diff (uint2 param0, uint2 param1);
OVERLOADABLE uint3 abs_diff (uint3 param0, uint3 param1);
OVERLOADABLE uint4 abs_diff (uint4 param0, uint4 param1);
OVERLOADABLE uint8 abs_diff (uint8 param0, uint8 param1);
OVERLOADABLE uint16 abs_diff (uint16 param0, uint16 param1);
OVERLOADABLE ulong2 abs_diff (ulong2 param0, ulong2 param1);
OVERLOADABLE ulong3 abs_diff (ulong3 param0, ulong3 param1);
OVERLOADABLE ulong4 abs_diff (ulong4 param0, ulong4 param1);
OVERLOADABLE ulong8 abs_diff (ulong8 param0, ulong8 param1);
OVERLOADABLE ulong16 abs_diff (ulong16 param0, ulong16 param1);

//gentype add_sat (gentype x,  gentype y)

OVERLOADABLE char2 add_sat (char2 param0, char2 param1);
OVERLOADABLE char3 add_sat (char3 param0, char3 param1);
OVERLOADABLE char4 add_sat (char4 param0, char4 param1);
OVERLOADABLE char8 add_sat (char8 param0, char8 param1);
OVERLOADABLE char16 add_sat (char16 param0, char16 param1);
OVERLOADABLE short2 add_sat (short2 param0, short2 param1);
OVERLOADABLE short3 add_sat (short3 param0, short3 param1);
OVERLOADABLE short4 add_sat (short4 param0, short4 param1);
OVERLOADABLE short8 add_sat (short8 param0, short8 param1);
OVERLOADABLE short16 add_sat (short16 param0, short16 param1);
OVERLOADABLE int2 add_sat (int2 param0, int2 param1);
OVERLOADABLE int3 add_sat (int3 param0, int3 param1);
OVERLOADABLE int4 add_sat (int4 param0, int4 param1);
OVERLOADABLE int8 add_sat (int8 param0, int8 param1);
OVERLOADABLE int16 add_sat (int16 param0, int16 param1);
OVERLOADABLE long2 add_sat (long2 param0, long2 param1);
OVERLOADABLE long3 add_sat (long3 param0, long3 param1);
OVERLOADABLE long4 add_sat (long4 param0, long4 param1);
OVERLOADABLE long8 add_sat (long8 param0, long8 param1);
OVERLOADABLE long16 add_sat (long16 param0, long16 param1);
OVERLOADABLE uchar2 add_sat (uchar2 param0, uchar2 param1);
OVERLOADABLE uchar3 add_sat (uchar3 param0, uchar3 param1);
OVERLOADABLE uchar4 add_sat (uchar4 param0, uchar4 param1);
OVERLOADABLE uchar8 add_sat (uchar8 param0, uchar8 param1);
OVERLOADABLE uchar16 add_sat (uchar16 param0, uchar16 param1);
OVERLOADABLE ushort2 add_sat (ushort2 param0, ushort2 param1);
OVERLOADABLE ushort3 add_sat (ushort3 param0, ushort3 param1);
OVERLOADABLE ushort4 add_sat (ushort4 param0, ushort4 param1);
OVERLOADABLE ushort8 add_sat (ushort8 param0, ushort8 param1);
OVERLOADABLE ushort16 add_sat (ushort16 param0, ushort16 param1);
OVERLOADABLE uint2 add_sat (uint2 param0, uint2 param1);
OVERLOADABLE uint3 add_sat (uint3 param0, uint3 param1);
OVERLOADABLE uint4 add_sat (uint4 param0, uint4 param1);
OVERLOADABLE uint8 add_sat (uint8 param0, uint8 param1);
OVERLOADABLE uint16 add_sat (uint16 param0, uint16 param1);
OVERLOADABLE ulong2 add_sat (ulong2 param0, ulong2 param1);
OVERLOADABLE ulong3 add_sat (ulong3 param0, ulong3 param1);
OVERLOADABLE ulong4 add_sat (ulong4 param0, ulong4 param1);
OVERLOADABLE ulong8 add_sat (ulong8 param0, ulong8 param1);
OVERLOADABLE ulong16 add_sat (ulong16 param0, ulong16 param1);

//gentype hadd (gentype x,  gentype y)

OVERLOADABLE char2 hadd (char2 param0, char2 param1);
OVERLOADABLE char3 hadd (char3 param0, char3 param1);
OVERLOADABLE char4 hadd (char4 param0, char4 param1);
OVERLOADABLE char8 hadd (char8 param0, char8 param1);
OVERLOADABLE char16 hadd (char16 param0, char16 param1);
OVERLOADABLE short2 hadd (short2 param0, short2 param1);
OVERLOADABLE short3 hadd (short3 param0, short3 param1);
OVERLOADABLE short4 hadd (short4 param0, short4 param1);
OVERLOADABLE short8 hadd (short8 param0, short8 param1);
OVERLOADABLE short16 hadd (short16 param0, short16 param1);
OVERLOADABLE int2 hadd (int2 param0, int2 param1);
OVERLOADABLE int3 hadd (int3 param0, int3 param1);
OVERLOADABLE int4 hadd (int4 param0, int4 param1);
OVERLOADABLE int8 hadd (int8 param0, int8 param1);
OVERLOADABLE int16 hadd (int16 param0, int16 param1);
OVERLOADABLE long2 hadd (long2 param0, long2 param1);
OVERLOADABLE long3 hadd (long3 param0, long3 param1);
OVERLOADABLE long4 hadd (long4 param0, long4 param1);
OVERLOADABLE long8 hadd (long8 param0, long8 param1);
OVERLOADABLE long16 hadd (long16 param0, long16 param1);
OVERLOADABLE uchar2 hadd (uchar2 param0, uchar2 param1);
OVERLOADABLE uchar3 hadd (uchar3 param0, uchar3 param1);
OVERLOADABLE uchar4 hadd (uchar4 param0, uchar4 param1);
OVERLOADABLE uchar8 hadd (uchar8 param0, uchar8 param1);
OVERLOADABLE uchar16 hadd (uchar16 param0, uchar16 param1);
OVERLOADABLE ushort2 hadd (ushort2 param0, ushort2 param1);
OVERLOADABLE ushort3 hadd (ushort3 param0, ushort3 param1);
OVERLOADABLE ushort4 hadd (ushort4 param0, ushort4 param1);
OVERLOADABLE ushort8 hadd (ushort8 param0, ushort8 param1);
OVERLOADABLE ushort16 hadd (ushort16 param0, ushort16 param1);
OVERLOADABLE uint2 hadd (uint2 param0, uint2 param1);
OVERLOADABLE uint3 hadd (uint3 param0, uint3 param1);
OVERLOADABLE uint4 hadd (uint4 param0, uint4 param1);
OVERLOADABLE uint8 hadd (uint8 param0, uint8 param1);
OVERLOADABLE uint16 hadd (uint16 param0, uint16 param1);
OVERLOADABLE ulong2 hadd (ulong2 param0, ulong2 param1);
OVERLOADABLE ulong3 hadd (ulong3 param0, ulong3 param1);
OVERLOADABLE ulong4 hadd (ulong4 param0, ulong4 param1);
OVERLOADABLE ulong8 hadd (ulong8 param0, ulong8 param1);
OVERLOADABLE ulong16 hadd (ulong16 param0, ulong16 param1);

//gentype rhadd (gentype x, gentype y)

OVERLOADABLE char2 rhadd (char2 param0, char2 param1);
OVERLOADABLE char3 rhadd (char3 param0, char3 param1);
OVERLOADABLE char4 rhadd (char4 param0, char4 param1);
OVERLOADABLE char8 rhadd (char8 param0, char8 param1);
OVERLOADABLE char16 rhadd (char16 param0, char16 param1);
OVERLOADABLE short2 rhadd (short2 param0, short2 param1);
OVERLOADABLE short3 rhadd (short3 param0, short3 param1);
OVERLOADABLE short4 rhadd (short4 param0, short4 param1);
OVERLOADABLE short8 rhadd (short8 param0, short8 param1);
OVERLOADABLE short16 rhadd (short16 param0, short16 param1);
OVERLOADABLE int2 rhadd (int2 param0, int2 param1);
OVERLOADABLE int3 rhadd (int3 param0, int3 param1);
OVERLOADABLE int4 rhadd (int4 param0, int4 param1);
OVERLOADABLE int8 rhadd (int8 param0, int8 param1);
OVERLOADABLE int16 rhadd (int16 param0, int16 param1);
OVERLOADABLE long2 rhadd (long2 param0, long2 param1);
OVERLOADABLE long3 rhadd (long3 param0, long3 param1);
OVERLOADABLE long4 rhadd (long4 param0, long4 param1);
OVERLOADABLE long8 rhadd (long8 param0, long8 param1);
OVERLOADABLE long16 rhadd (long16 param0, long16 param1);
OVERLOADABLE uchar2 rhadd (uchar2 param0, uchar2 param1);
OVERLOADABLE uchar3 rhadd (uchar3 param0, uchar3 param1);
OVERLOADABLE uchar4 rhadd (uchar4 param0, uchar4 param1);
OVERLOADABLE uchar8 rhadd (uchar8 param0, uchar8 param1);
OVERLOADABLE uchar16 rhadd (uchar16 param0, uchar16 param1);
OVERLOADABLE ushort2 rhadd (ushort2 param0, ushort2 param1);
OVERLOADABLE ushort3 rhadd (ushort3 param0, ushort3 param1);
OVERLOADABLE ushort4 rhadd (ushort4 param0, ushort4 param1);
OVERLOADABLE ushort8 rhadd (ushort8 param0, ushort8 param1);
OVERLOADABLE ushort16 rhadd (ushort16 param0, ushort16 param1);
OVERLOADABLE uint2 rhadd (uint2 param0, uint2 param1);
OVERLOADABLE uint3 rhadd (uint3 param0, uint3 param1);
OVERLOADABLE uint4 rhadd (uint4 param0, uint4 param1);
OVERLOADABLE uint8 rhadd (uint8 param0, uint8 param1);
OVERLOADABLE uint16 rhadd (uint16 param0, uint16 param1);
OVERLOADABLE ulong2 rhadd (ulong2 param0, ulong2 param1);
OVERLOADABLE ulong3 rhadd (ulong3 param0, ulong3 param1);
OVERLOADABLE ulong4 rhadd (ulong4 param0, ulong4 param1);
OVERLOADABLE ulong8 rhadd (ulong8 param0, ulong8 param1);
OVERLOADABLE ulong16 rhadd (ulong16 param0, ulong16 param1);

//gentype clamp (gentype x, gentype minval, gentype maxval)

OVERLOADABLE char2 clamp (char2 param0, char2 param1, char2 param2);
OVERLOADABLE char3 clamp (char3 param0, char3 param1, char3 param2);
OVERLOADABLE char4 clamp (char4 param0, char4 param1, char4 param2);
OVERLOADABLE char8 clamp (char8 param0, char8 param1, char8 param2);
OVERLOADABLE char16 clamp (char16 param0, char16 param1, char16 param2);
OVERLOADABLE short2 clamp (short2 param0, short2 param1, short2 param2);
OVERLOADABLE short3 clamp (short3 param0, short3 param1, short3 param2);
OVERLOADABLE short4 clamp (short4 param0, short4 param1, short4 param2);
OVERLOADABLE short8 clamp (short8 param0, short8 param1, short8 param2);
OVERLOADABLE short16 clamp (short16 param0, short16 param1, short16 param2);
OVERLOADABLE int2 clamp (int2 param0, int2 param1, int2 param2);
OVERLOADABLE int3 clamp (int3 param0, int3 param1, int3 param2);
OVERLOADABLE int4 clamp (int4 param0, int4 param1, int4 param2);
OVERLOADABLE int8 clamp (int8 param0, int8 param1, int8 param2);
OVERLOADABLE int16 clamp (int16 param0, int16 param1, int16 param2);
OVERLOADABLE long2 clamp (long2 param0, long2 param1, long2 param2);
OVERLOADABLE long3 clamp (long3 param0, long3 param1, long3 param2);
OVERLOADABLE long4 clamp (long4 param0, long4 param1, long4 param2);
OVERLOADABLE long8 clamp (long8 param0, long8 param1, long8 param2);
OVERLOADABLE long16 clamp (long16 param0, long16 param1, long16 param2);
OVERLOADABLE uchar2 clamp (uchar2 param0, uchar2 param1, uchar2 param2);
OVERLOADABLE uchar3 clamp (uchar3 param0, uchar3 param1, uchar3 param2);
OVERLOADABLE uchar4 clamp (uchar4 param0, uchar4 param1, uchar4 param2);
OVERLOADABLE uchar8 clamp (uchar8 param0, uchar8 param1, uchar8 param2);
OVERLOADABLE uchar16 clamp (uchar16 param0, uchar16 param1, uchar16 param2);
OVERLOADABLE ushort2 clamp (ushort2 param0, ushort2 param1, ushort2 param2);
OVERLOADABLE ushort3 clamp (ushort3 param0, ushort3 param1, ushort3 param2);
OVERLOADABLE ushort4 clamp (ushort4 param0, ushort4 param1, ushort4 param2);
OVERLOADABLE ushort8 clamp (ushort8 param0, ushort8 param1, ushort8 param2);
OVERLOADABLE ushort16 clamp (ushort16 param0, ushort16 param1, ushort16 param2);
OVERLOADABLE uint2 clamp (uint2 param0, uint2 param1, uint2 param2);
OVERLOADABLE uint3 clamp (uint3 param0, uint3 param1, uint3 param2);
OVERLOADABLE uint4 clamp (uint4 param0, uint4 param1, uint4 param2);
OVERLOADABLE uint8 clamp (uint8 param0, uint8 param1, uint8 param2);
OVERLOADABLE uint16 clamp (uint16 param0, uint16 param1, uint16 param2);
OVERLOADABLE ulong2 clamp (ulong2 param0, ulong2 param1, ulong2 param2);
OVERLOADABLE ulong3 clamp (ulong3 param0, ulong3 param1, ulong3 param2);
OVERLOADABLE ulong4 clamp (ulong4 param0, ulong4 param1, ulong4 param2);
OVERLOADABLE ulong8 clamp (ulong8 param0, ulong8 param1, ulong8 param2);
OVERLOADABLE ulong16 clamp (ulong16 param0, ulong16 param1, ulong16 param2);

//gentype clamp (gentype x, sgentype minval, sgentype maxval)

OVERLOADABLE char2 clamp (char2 param0, char param1, char param2);
OVERLOADABLE char3 clamp (char3 param0, char param1, char param2);
OVERLOADABLE char4 clamp (char4 param0, char param1, char param2);
OVERLOADABLE char8 clamp (char8 param0, char param1, char param2);
OVERLOADABLE char16 clamp (char16 param0, char param1, char param2);
OVERLOADABLE short2 clamp (short2 param0, short param1, short param2);
OVERLOADABLE short3 clamp (short3 param0, short param1, short param2);
OVERLOADABLE short4 clamp (short4 param0, short param1, short param2);
OVERLOADABLE short8 clamp (short8 param0, short param1, short param2);
OVERLOADABLE short16 clamp (short16 param0, short param1, short param2);
OVERLOADABLE int2 clamp (int2 param0, int param1, int param2);
OVERLOADABLE int3 clamp (int3 param0, int param1, int param2);
OVERLOADABLE int4 clamp (int4 param0, int param1, int param2);
OVERLOADABLE int8 clamp (int8 param0, int param1, int param2);
OVERLOADABLE int16 clamp (int16 param0, int param1, int param2);
OVERLOADABLE long2 clamp (long2 param0, long param1, long param2);
OVERLOADABLE long3 clamp (long3 param0, long param1, long param2);
OVERLOADABLE long4 clamp (long4 param0, long param1, long param2);
OVERLOADABLE long8 clamp (long8 param0, long param1, long param2);
OVERLOADABLE long16 clamp (long16 param0, long param1, long param2);
OVERLOADABLE uchar2 clamp (uchar2 param0, uchar param1, uchar param2);
OVERLOADABLE uchar3 clamp (uchar3 param0, uchar param1, uchar param2);
OVERLOADABLE uchar4 clamp (uchar4 param0, uchar param1, uchar param2);
OVERLOADABLE uchar8 clamp (uchar8 param0, uchar param1, uchar param2);
OVERLOADABLE uchar16 clamp (uchar16 param0, uchar param1, uchar param2);
OVERLOADABLE ushort2 clamp (ushort2 param0, ushort param1, ushort param2);
OVERLOADABLE ushort3 clamp (ushort3 param0, ushort param1, ushort param2);
OVERLOADABLE ushort4 clamp (ushort4 param0, ushort param1, ushort param2);
OVERLOADABLE ushort8 clamp (ushort8 param0, ushort param1, ushort param2);
OVERLOADABLE ushort16 clamp (ushort16 param0, ushort param1, ushort param2);
OVERLOADABLE uint2 clamp (uint2 param0, uint param1, uint param2);
OVERLOADABLE uint3 clamp (uint3 param0, uint param1, uint param2);
OVERLOADABLE uint4 clamp (uint4 param0, uint param1, uint param2);
OVERLOADABLE uint8 clamp (uint8 param0, uint param1, uint param2);
OVERLOADABLE uint16 clamp (uint16 param0, uint param1, uint param2);
OVERLOADABLE ulong2 clamp (ulong2 param0, ulong param1, ulong param2);
OVERLOADABLE ulong3 clamp (ulong3 param0, ulong param1, ulong param2);
OVERLOADABLE ulong4 clamp (ulong4 param0, ulong param1, ulong param2);
OVERLOADABLE ulong8 clamp (ulong8 param0, ulong param1, ulong param2);
OVERLOADABLE ulong16 clamp (ulong16 param0, ulong param1, ulong param2);

//gentype clz (gentype x)

OVERLOADABLE char2 clz (char2 param0);
OVERLOADABLE char3 clz (char3 param0);
OVERLOADABLE char4 clz (char4 param0);
OVERLOADABLE char8 clz (char8 param0);
OVERLOADABLE char16 clz (char16 param0);
OVERLOADABLE short2 clz (short2 param0);
OVERLOADABLE short3 clz (short3 param0);
OVERLOADABLE short4 clz (short4 param0);
OVERLOADABLE short8 clz (short8 param0);
OVERLOADABLE short16 clz (short16 param0);
OVERLOADABLE int2 clz (int2 param0);
OVERLOADABLE int3 clz (int3 param0);
OVERLOADABLE int4 clz (int4 param0);
OVERLOADABLE int8 clz (int8 param0);
OVERLOADABLE int16 clz (int16 param0);
OVERLOADABLE long2 clz (long2 param0);
OVERLOADABLE long3 clz (long3 param0);
OVERLOADABLE long4 clz (long4 param0);
OVERLOADABLE long8 clz (long8 param0);
OVERLOADABLE long16 clz (long16 param0);
OVERLOADABLE uchar2 clz (uchar2 param0);
OVERLOADABLE uchar3 clz (uchar3 param0);
OVERLOADABLE uchar4 clz (uchar4 param0);
OVERLOADABLE uchar8 clz (uchar8 param0);
OVERLOADABLE uchar16 clz (uchar16 param0);
OVERLOADABLE ushort2 clz (ushort2 param0);
OVERLOADABLE ushort3 clz (ushort3 param0);
OVERLOADABLE ushort4 clz (ushort4 param0);
OVERLOADABLE ushort8 clz (ushort8 param0);
OVERLOADABLE ushort16 clz (ushort16 param0);
OVERLOADABLE uint2 clz (uint2 param0);
OVERLOADABLE uint3 clz (uint3 param0);
OVERLOADABLE uint4 clz (uint4 param0);
OVERLOADABLE uint8 clz (uint8 param0);
OVERLOADABLE uint16 clz (uint16 param0);
OVERLOADABLE ulong2 clz (ulong2 param0);
OVERLOADABLE ulong3 clz (ulong3 param0);
OVERLOADABLE ulong4 clz (ulong4 param0);
OVERLOADABLE ulong8 clz (ulong8 param0);
OVERLOADABLE ulong16 clz (ulong16 param0);

//gentype ctz (gentype x)

OVERLOADABLE char2 ctz (char2 param0);
OVERLOADABLE char3 ctz (char3 param0);
OVERLOADABLE char4 ctz (char4 param0);
OVERLOADABLE char8 ctz (char8 param0);
OVERLOADABLE char16 ctz (char16 param0);
OVERLOADABLE short2 ctz (short2 param0);
OVERLOADABLE short3 ctz (short3 param0);
OVERLOADABLE short4 ctz (short4 param0);
OVERLOADABLE short8 ctz (short8 param0);
OVERLOADABLE short16 ctz (short16 param0);
OVERLOADABLE int2 ctz (int2 param0);
OVERLOADABLE int3 ctz (int3 param0);
OVERLOADABLE int4 ctz (int4 param0);
OVERLOADABLE int8 ctz (int8 param0);
OVERLOADABLE int16 ctz (int16 param0);
OVERLOADABLE long2 ctz (long2 param0);
OVERLOADABLE long3 ctz (long3 param0);
OVERLOADABLE long4 ctz (long4 param0);
OVERLOADABLE long8 ctz (long8 param0);
OVERLOADABLE long16 ctz (long16 param0);
OVERLOADABLE uchar2 ctz (uchar2 param0);
OVERLOADABLE uchar3 ctz (uchar3 param0);
OVERLOADABLE uchar4 ctz (uchar4 param0);
OVERLOADABLE uchar8 ctz (uchar8 param0);
OVERLOADABLE uchar16 ctz (uchar16 param0);
OVERLOADABLE ushort2 ctz (ushort2 param0);
OVERLOADABLE ushort3 ctz (ushort3 param0);
OVERLOADABLE ushort4 ctz (ushort4 param0);
OVERLOADABLE ushort8 ctz (ushort8 param0);
OVERLOADABLE ushort16 ctz (ushort16 param0);
OVERLOADABLE uint2 ctz (uint2 param0);
OVERLOADABLE uint3 ctz (uint3 param0);
OVERLOADABLE uint4 ctz (uint4 param0);
OVERLOADABLE uint8 ctz (uint8 param0);
OVERLOADABLE uint16 ctz (uint16 param0);
OVERLOADABLE ulong2 ctz (ulong2 param0);
OVERLOADABLE ulong3 ctz (ulong3 param0);
OVERLOADABLE ulong4 ctz (ulong4 param0);
OVERLOADABLE ulong8 ctz (ulong8 param0);
OVERLOADABLE ulong16 ctz (ulong16 param0);

//gentype mad_hi (gentype a, gentype b, gentype c)

OVERLOADABLE char2 mad_hi (char2 param0, char2 param1, char2 param2);
OVERLOADABLE char3 mad_hi (char3 param0, char3 param1, char3 param2);
OVERLOADABLE char4 mad_hi (char4 param0, char4 param1, char4 param2);
OVERLOADABLE char8 mad_hi (char8 param0, char8 param1, char8 param2);
OVERLOADABLE char16 mad_hi (char16 param0, char16 param1, char16 param2);
OVERLOADABLE short2 mad_hi (short2 param0, short2 param1, short2 param2);
OVERLOADABLE short3 mad_hi (short3 param0, short3 param1, short3 param2);
OVERLOADABLE short4 mad_hi (short4 param0, short4 param1, short4 param2);
OVERLOADABLE short8 mad_hi (short8 param0, short8 param1, short8 param2);
OVERLOADABLE short16 mad_hi (short16 param0, short16 param1, short16 param2);
OVERLOADABLE int2 mad_hi (int2 param0, int2 param1, int2 param2);
OVERLOADABLE int3 mad_hi (int3 param0, int3 param1, int3 param2);
OVERLOADABLE int4 mad_hi (int4 param0, int4 param1, int4 param2);
OVERLOADABLE int8 mad_hi (int8 param0, int8 param1, int8 param2);
OVERLOADABLE int16 mad_hi (int16 param0, int16 param1, int16 param2);
OVERLOADABLE long2 mad_hi (long2 param0, long2 param1, long2 param2);
OVERLOADABLE long3 mad_hi (long3 param0, long3 param1, long3 param2);
OVERLOADABLE long4 mad_hi (long4 param0, long4 param1, long4 param2);
OVERLOADABLE long8 mad_hi (long8 param0, long8 param1, long8 param2);
OVERLOADABLE long16 mad_hi (long16 param0, long16 param1, long16 param2);
OVERLOADABLE uchar2 mad_hi (uchar2 param0, uchar2 param1, uchar2 param2);
OVERLOADABLE uchar3 mad_hi (uchar3 param0, uchar3 param1, uchar3 param2);
OVERLOADABLE uchar4 mad_hi (uchar4 param0, uchar4 param1, uchar4 param2);
OVERLOADABLE uchar8 mad_hi (uchar8 param0, uchar8 param1, uchar8 param2);
OVERLOADABLE uchar16 mad_hi (uchar16 param0, uchar16 param1, uchar16 param2);
OVERLOADABLE ushort2 mad_hi (ushort2 param0, ushort2 param1, ushort2 param2);
OVERLOADABLE ushort3 mad_hi (ushort3 param0, ushort3 param1, ushort3 param2);
OVERLOADABLE ushort4 mad_hi (ushort4 param0, ushort4 param1, ushort4 param2);
OVERLOADABLE ushort8 mad_hi (ushort8 param0, ushort8 param1, ushort8 param2);
OVERLOADABLE ushort16 mad_hi (ushort16 param0, ushort16 param1, ushort16 param2);
OVERLOADABLE uint2 mad_hi (uint2 param0, uint2 param1, uint2 param2);
OVERLOADABLE uint3 mad_hi (uint3 param0, uint3 param1, uint3 param2);
OVERLOADABLE uint4 mad_hi (uint4 param0, uint4 param1, uint4 param2);
OVERLOADABLE uint8 mad_hi (uint8 param0, uint8 param1, uint8 param2);
OVERLOADABLE uint16 mad_hi (uint16 param0, uint16 param1, uint16 param2);
OVERLOADABLE ulong2 mad_hi (ulong2 param0, ulong2 param1, ulong2 param2);
OVERLOADABLE ulong3 mad_hi (ulong3 param0, ulong3 param1, ulong3 param2);
OVERLOADABLE ulong4 mad_hi (ulong4 param0, ulong4 param1, ulong4 param2);
OVERLOADABLE ulong8 mad_hi (ulong8 param0, ulong8 param1, ulong8 param2);
OVERLOADABLE ulong16 mad_hi (ulong16 param0, ulong16 param1, ulong16 param2);

//gentype mad_sat (gentype a, gentype b, gentype c)

OVERLOADABLE char2 mad_sat (char2 param0, char2 param1, char2 param2);
OVERLOADABLE char3 mad_sat (char3 param0, char3 param1, char3 param2);
OVERLOADABLE char4 mad_sat (char4 param0, char4 param1, char4 param2);
OVERLOADABLE char8 mad_sat (char8 param0, char8 param1, char8 param2);
OVERLOADABLE char16 mad_sat (char16 param0, char16 param1, char16 param2);
OVERLOADABLE short2 mad_sat (short2 param0, short2 param1, short2 param2);
OVERLOADABLE short3 mad_sat (short3 param0, short3 param1, short3 param2);
OVERLOADABLE short4 mad_sat (short4 param0, short4 param1, short4 param2);
OVERLOADABLE short8 mad_sat (short8 param0, short8 param1, short8 param2);
OVERLOADABLE short16 mad_sat (short16 param0, short16 param1, short16 param2);
OVERLOADABLE int2 mad_sat (int2 param0, int2 param1, int2 param2);
OVERLOADABLE int3 mad_sat (int3 param0, int3 param1, int3 param2);
OVERLOADABLE int4 mad_sat (int4 param0, int4 param1, int4 param2);
OVERLOADABLE int8 mad_sat (int8 param0, int8 param1, int8 param2);
OVERLOADABLE int16 mad_sat (int16 param0, int16 param1, int16 param2);
OVERLOADABLE long2 mad_sat (long2 param0, long2 param1, long2 param2);
OVERLOADABLE long3 mad_sat (long3 param0, long3 param1, long3 param2);
OVERLOADABLE long4 mad_sat (long4 param0, long4 param1, long4 param2);
OVERLOADABLE long8 mad_sat (long8 param0, long8 param1, long8 param2);
OVERLOADABLE long16 mad_sat (long16 param0, long16 param1, long16 param2);
OVERLOADABLE uchar2 mad_sat (uchar2 param0, uchar2 param1, uchar2 param2);
OVERLOADABLE uchar3 mad_sat (uchar3 param0, uchar3 param1, uchar3 param2);
OVERLOADABLE uchar4 mad_sat (uchar4 param0, uchar4 param1, uchar4 param2);
OVERLOADABLE uchar8 mad_sat (uchar8 param0, uchar8 param1, uchar8 param2);
OVERLOADABLE uchar16 mad_sat (uchar16 param0, uchar16 param1, uchar16 param2);
OVERLOADABLE ushort2 mad_sat (ushort2 param0, ushort2 param1, ushort2 param2);
OVERLOADABLE ushort3 mad_sat (ushort3 param0, ushort3 param1, ushort3 param2);
OVERLOADABLE ushort4 mad_sat (ushort4 param0, ushort4 param1, ushort4 param2);
OVERLOADABLE ushort8 mad_sat (ushort8 param0, ushort8 param1, ushort8 param2);
OVERLOADABLE ushort16 mad_sat (ushort16 param0, ushort16 param1, ushort16 param2);
OVERLOADABLE uint2 mad_sat (uint2 param0, uint2 param1, uint2 param2);
OVERLOADABLE uint3 mad_sat (uint3 param0, uint3 param1, uint3 param2);
OVERLOADABLE uint4 mad_sat (uint4 param0, uint4 param1, uint4 param2);
OVERLOADABLE uint8 mad_sat (uint8 param0, uint8 param1, uint8 param2);
OVERLOADABLE uint16 mad_sat (uint16 param0, uint16 param1, uint16 param2);
OVERLOADABLE ulong2 mad_sat (ulong2 param0, ulong2 param1, ulong2 param2);
OVERLOADABLE ulong3 mad_sat (ulong3 param0, ulong3 param1, ulong3 param2);
OVERLOADABLE ulong4 mad_sat (ulong4 param0, ulong4 param1, ulong4 param2);
OVERLOADABLE ulong8 mad_sat (ulong8 param0, ulong8 param1, ulong8 param2);
OVERLOADABLE ulong16 mad_sat (ulong16 param0, ulong16 param1, ulong16 param2);

//gentype max (gentype x,  gentype y)

OVERLOADABLE char2 max (char2 param0, char2 param1);
OVERLOADABLE char3 max (char3 param0, char3 param1);
OVERLOADABLE char4 max (char4 param0, char4 param1);
OVERLOADABLE char8 max (char8 param0, char8 param1);
OVERLOADABLE char16 max (char16 param0, char16 param1);
OVERLOADABLE short2 max (short2 param0, short2 param1);
OVERLOADABLE short3 max (short3 param0, short3 param1);
OVERLOADABLE short4 max (short4 param0, short4 param1);
OVERLOADABLE short8 max (short8 param0, short8 param1);
OVERLOADABLE short16 max (short16 param0, short16 param1);
OVERLOADABLE int2 max (int2 param0, int2 param1);
OVERLOADABLE int3 max (int3 param0, int3 param1);
OVERLOADABLE int4 max (int4 param0, int4 param1);
OVERLOADABLE int8 max (int8 param0, int8 param1);
OVERLOADABLE int16 max (int16 param0, int16 param1);
OVERLOADABLE long2 max (long2 param0, long2 param1);
OVERLOADABLE long3 max (long3 param0, long3 param1);
OVERLOADABLE long4 max (long4 param0, long4 param1);
OVERLOADABLE long8 max (long8 param0, long8 param1);
OVERLOADABLE long16 max (long16 param0, long16 param1);
OVERLOADABLE uchar2 max (uchar2 param0, uchar2 param1);
OVERLOADABLE uchar3 max (uchar3 param0, uchar3 param1);
OVERLOADABLE uchar4 max (uchar4 param0, uchar4 param1);
OVERLOADABLE uchar8 max (uchar8 param0, uchar8 param1);
OVERLOADABLE uchar16 max (uchar16 param0, uchar16 param1);
OVERLOADABLE ushort2 max (ushort2 param0, ushort2 param1);
OVERLOADABLE ushort3 max (ushort3 param0, ushort3 param1);
OVERLOADABLE ushort4 max (ushort4 param0, ushort4 param1);
OVERLOADABLE ushort8 max (ushort8 param0, ushort8 param1);
OVERLOADABLE ushort16 max (ushort16 param0, ushort16 param1);
OVERLOADABLE uint2 max (uint2 param0, uint2 param1);
OVERLOADABLE uint3 max (uint3 param0, uint3 param1);
OVERLOADABLE uint4 max (uint4 param0, uint4 param1);
OVERLOADABLE uint8 max (uint8 param0, uint8 param1);
OVERLOADABLE uint16 max (uint16 param0, uint16 param1);
OVERLOADABLE ulong2 max (ulong2 param0, ulong2 param1);
OVERLOADABLE ulong3 max (ulong3 param0, ulong3 param1);
OVERLOADABLE ulong4 max (ulong4 param0, ulong4 param1);
OVERLOADABLE ulong8 max (ulong8 param0, ulong8 param1);
OVERLOADABLE ulong16 max (ulong16 param0, ulong16 param1);

//gentype max (gentype x,  sgentype y)

OVERLOADABLE char2 max (char2 param0, char param1);
OVERLOADABLE char3 max (char3 param0, char param1);
OVERLOADABLE char4 max (char4 param0, char param1);
OVERLOADABLE char8 max (char8 param0, char param1);
OVERLOADABLE char16 max (char16 param0, char param1);
OVERLOADABLE short2 max (short2 param0, short param1);
OVERLOADABLE short3 max (short3 param0, short param1);
OVERLOADABLE short4 max (short4 param0, short param1);
OVERLOADABLE short8 max (short8 param0, short param1);
OVERLOADABLE short16 max (short16 param0, short param1);
OVERLOADABLE int2 max (int2 param0, int param1);
OVERLOADABLE int3 max (int3 param0, int param1);
OVERLOADABLE int4 max (int4 param0, int param1);
OVERLOADABLE int8 max (int8 param0, int param1);
OVERLOADABLE int16 max (int16 param0, int param1);
OVERLOADABLE long2 max (long2 param0, long param1);
OVERLOADABLE long3 max (long3 param0, long param1);
OVERLOADABLE long4 max (long4 param0, long param1);
OVERLOADABLE long8 max (long8 param0, long param1);
OVERLOADABLE long16 max (long16 param0, long param1);
OVERLOADABLE uchar2 max (uchar2 param0, uchar param1);
OVERLOADABLE uchar3 max (uchar3 param0, uchar param1);
OVERLOADABLE uchar4 max (uchar4 param0, uchar param1);
OVERLOADABLE uchar8 max (uchar8 param0, uchar param1);
OVERLOADABLE uchar16 max (uchar16 param0, uchar param1);
OVERLOADABLE ushort2 max (ushort2 param0, ushort param1);
OVERLOADABLE ushort3 max (ushort3 param0, ushort param1);
OVERLOADABLE ushort4 max (ushort4 param0, ushort param1);
OVERLOADABLE ushort8 max (ushort8 param0, ushort param1);
OVERLOADABLE ushort16 max (ushort16 param0, ushort param1);
OVERLOADABLE uint2 max (uint2 param0, uint param1);
OVERLOADABLE uint3 max (uint3 param0, uint param1);
OVERLOADABLE uint4 max (uint4 param0, uint param1);
OVERLOADABLE uint8 max (uint8 param0, uint param1);
OVERLOADABLE uint16 max (uint16 param0, uint param1);
OVERLOADABLE ulong2 max (ulong2 param0, ulong param1);
OVERLOADABLE ulong3 max (ulong3 param0, ulong param1);
OVERLOADABLE ulong4 max (ulong4 param0, ulong param1);
OVERLOADABLE ulong8 max (ulong8 param0, ulong param1);
OVERLOADABLE ulong16 max (ulong16 param0, ulong param1);

//gentype min (gentype x,  gentype y)

OVERLOADABLE char2 min (char2 param0, char2 param1);
OVERLOADABLE char3 min (char3 param0, char3 param1);
OVERLOADABLE char4 min (char4 param0, char4 param1);
OVERLOADABLE char8 min (char8 param0, char8 param1);
OVERLOADABLE char16 min (char16 param0, char16 param1);
OVERLOADABLE short2 min (short2 param0, short2 param1);
OVERLOADABLE short3 min (short3 param0, short3 param1);
OVERLOADABLE short4 min (short4 param0, short4 param1);
OVERLOADABLE short8 min (short8 param0, short8 param1);
OVERLOADABLE short16 min (short16 param0, short16 param1);
OVERLOADABLE int2 min (int2 param0, int2 param1);
OVERLOADABLE int3 min (int3 param0, int3 param1);
OVERLOADABLE int4 min (int4 param0, int4 param1);
OVERLOADABLE int8 min (int8 param0, int8 param1);
OVERLOADABLE int16 min (int16 param0, int16 param1);
OVERLOADABLE long2 min (long2 param0, long2 param1);
OVERLOADABLE long3 min (long3 param0, long3 param1);
OVERLOADABLE long4 min (long4 param0, long4 param1);
OVERLOADABLE long8 min (long8 param0, long8 param1);
OVERLOADABLE long16 min (long16 param0, long16 param1);
OVERLOADABLE uchar2 min (uchar2 param0, uchar2 param1);
OVERLOADABLE uchar3 min (uchar3 param0, uchar3 param1);
OVERLOADABLE uchar4 min (uchar4 param0, uchar4 param1);
OVERLOADABLE uchar8 min (uchar8 param0, uchar8 param1);
OVERLOADABLE uchar16 min (uchar16 param0, uchar16 param1);
OVERLOADABLE ushort2 min (ushort2 param0, ushort2 param1);
OVERLOADABLE ushort3 min (ushort3 param0, ushort3 param1);
OVERLOADABLE ushort4 min (ushort4 param0, ushort4 param1);
OVERLOADABLE ushort8 min (ushort8 param0, ushort8 param1);
OVERLOADABLE ushort16 min (ushort16 param0, ushort16 param1);
OVERLOADABLE uint2 min (uint2 param0, uint2 param1);
OVERLOADABLE uint3 min (uint3 param0, uint3 param1);
OVERLOADABLE uint4 min (uint4 param0, uint4 param1);
OVERLOADABLE uint8 min (uint8 param0, uint8 param1);
OVERLOADABLE uint16 min (uint16 param0, uint16 param1);
OVERLOADABLE ulong2 min (ulong2 param0, ulong2 param1);
OVERLOADABLE ulong3 min (ulong3 param0, ulong3 param1);
OVERLOADABLE ulong4 min (ulong4 param0, ulong4 param1);
OVERLOADABLE ulong8 min (ulong8 param0, ulong8 param1);
OVERLOADABLE ulong16 min (ulong16 param0, ulong16 param1);

//gentype min (gentype x,  sgentype y)

OVERLOADABLE char2 min (char2 param0, char param1);
OVERLOADABLE char3 min (char3 param0, char param1);
OVERLOADABLE char4 min (char4 param0, char param1);
OVERLOADABLE char8 min (char8 param0, char param1);
OVERLOADABLE char16 min (char16 param0, char param1);
OVERLOADABLE short2 min (short2 param0, short param1);
OVERLOADABLE short3 min (short3 param0, short param1);
OVERLOADABLE short4 min (short4 param0, short param1);
OVERLOADABLE short8 min (short8 param0, short param1);
OVERLOADABLE short16 min (short16 param0, short param1);
OVERLOADABLE int2 min (int2 param0, int param1);
OVERLOADABLE int3 min (int3 param0, int param1);
OVERLOADABLE int4 min (int4 param0, int param1);
OVERLOADABLE int8 min (int8 param0, int param1);
OVERLOADABLE int16 min (int16 param0, int param1);
OVERLOADABLE long2 min (long2 param0, long param1);
OVERLOADABLE long3 min (long3 param0, long param1);
OVERLOADABLE long4 min (long4 param0, long param1);
OVERLOADABLE long8 min (long8 param0, long param1);
OVERLOADABLE long16 min (long16 param0, long param1);
OVERLOADABLE uchar2 min (uchar2 param0, uchar param1);
OVERLOADABLE uchar3 min (uchar3 param0, uchar param1);
OVERLOADABLE uchar4 min (uchar4 param0, uchar param1);
OVERLOADABLE uchar8 min (uchar8 param0, uchar param1);
OVERLOADABLE uchar16 min (uchar16 param0, uchar param1);
OVERLOADABLE ushort2 min (ushort2 param0, ushort param1);
OVERLOADABLE ushort3 min (ushort3 param0, ushort param1);
OVERLOADABLE ushort4 min (ushort4 param0, ushort param1);
OVERLOADABLE ushort8 min (ushort8 param0, ushort param1);
OVERLOADABLE ushort16 min (ushort16 param0, ushort param1);
OVERLOADABLE uint2 min (uint2 param0, uint param1);
OVERLOADABLE uint3 min (uint3 param0, uint param1);
OVERLOADABLE uint4 min (uint4 param0, uint param1);
OVERLOADABLE uint8 min (uint8 param0, uint param1);
OVERLOADABLE uint16 min (uint16 param0, uint param1);
OVERLOADABLE ulong2 min (ulong2 param0, ulong param1);
OVERLOADABLE ulong3 min (ulong3 param0, ulong param1);
OVERLOADABLE ulong4 min (ulong4 param0, ulong param1);
OVERLOADABLE ulong8 min (ulong8 param0, ulong param1);
OVERLOADABLE ulong16 min (ulong16 param0, ulong param1);

//gentype mul_hi (gentype x,  gentype y)

OVERLOADABLE char2 mul_hi (char2 param0, char2 param1);
OVERLOADABLE char3 mul_hi (char3 param0, char3 param1);
OVERLOADABLE char4 mul_hi (char4 param0, char4 param1);
OVERLOADABLE char8 mul_hi (char8 param0, char8 param1);
OVERLOADABLE char16 mul_hi (char16 param0, char16 param1);
OVERLOADABLE short2 mul_hi (short2 param0, short2 param1);
OVERLOADABLE short3 mul_hi (short3 param0, short3 param1);
OVERLOADABLE short4 mul_hi (short4 param0, short4 param1);
OVERLOADABLE short8 mul_hi (short8 param0, short8 param1);
OVERLOADABLE short16 mul_hi (short16 param0, short16 param1);
OVERLOADABLE int2 mul_hi (int2 param0, int2 param1);
OVERLOADABLE int3 mul_hi (int3 param0, int3 param1);
OVERLOADABLE int4 mul_hi (int4 param0, int4 param1);
OVERLOADABLE int8 mul_hi (int8 param0, int8 param1);
OVERLOADABLE int16 mul_hi (int16 param0, int16 param1);
OVERLOADABLE long2 mul_hi (long2 param0, long2 param1);
OVERLOADABLE long3 mul_hi (long3 param0, long3 param1);
OVERLOADABLE long4 mul_hi (long4 param0, long4 param1);
OVERLOADABLE long8 mul_hi (long8 param0, long8 param1);
OVERLOADABLE long16 mul_hi (long16 param0, long16 param1);
OVERLOADABLE uchar2 mul_hi (uchar2 param0, uchar2 param1);
OVERLOADABLE uchar3 mul_hi (uchar3 param0, uchar3 param1);
OVERLOADABLE uchar4 mul_hi (uchar4 param0, uchar4 param1);
OVERLOADABLE uchar8 mul_hi (uchar8 param0, uchar8 param1);
OVERLOADABLE uchar16 mul_hi (uchar16 param0, uchar16 param1);
OVERLOADABLE ushort2 mul_hi (ushort2 param0, ushort2 param1);
OVERLOADABLE ushort3 mul_hi (ushort3 param0, ushort3 param1);
OVERLOADABLE ushort4 mul_hi (ushort4 param0, ushort4 param1);
OVERLOADABLE ushort8 mul_hi (ushort8 param0, ushort8 param1);
OVERLOADABLE ushort16 mul_hi (ushort16 param0, ushort16 param1);
OVERLOADABLE uint2 mul_hi (uint2 param0, uint2 param1);
OVERLOADABLE uint3 mul_hi (uint3 param0, uint3 param1);
OVERLOADABLE uint4 mul_hi (uint4 param0, uint4 param1);
OVERLOADABLE uint8 mul_hi (uint8 param0, uint8 param1);
OVERLOADABLE uint16 mul_hi (uint16 param0, uint16 param1);
OVERLOADABLE ulong2 mul_hi (ulong2 param0, ulong2 param1);
OVERLOADABLE ulong3 mul_hi (ulong3 param0, ulong3 param1);
OVERLOADABLE ulong4 mul_hi (ulong4 param0, ulong4 param1);
OVERLOADABLE ulong8 mul_hi (ulong8 param0, ulong8 param1);
OVERLOADABLE ulong16 mul_hi (ulong16 param0, ulong16 param1);

//gentype rotate (gentype v,  gentype i)

OVERLOADABLE char2 rotate (char2 param0, char2 param1);
OVERLOADABLE char3 rotate (char3 param0, char3 param1);
OVERLOADABLE char4 rotate (char4 param0, char4 param1);
OVERLOADABLE char8 rotate (char8 param0, char8 param1);
OVERLOADABLE char16 rotate (char16 param0, char16 param1);
OVERLOADABLE short2 rotate (short2 param0, short2 param1);
OVERLOADABLE short3 rotate (short3 param0, short3 param1);
OVERLOADABLE short4 rotate (short4 param0, short4 param1);
OVERLOADABLE short8 rotate (short8 param0, short8 param1);
OVERLOADABLE short16 rotate (short16 param0, short16 param1);
OVERLOADABLE int2 rotate (int2 param0, int2 param1);
OVERLOADABLE int3 rotate (int3 param0, int3 param1);
OVERLOADABLE int4 rotate (int4 param0, int4 param1);
OVERLOADABLE int8 rotate (int8 param0, int8 param1);
OVERLOADABLE int16 rotate (int16 param0, int16 param1);
OVERLOADABLE long2 rotate (long2 param0, long2 param1);
OVERLOADABLE long3 rotate (long3 param0, long3 param1);
OVERLOADABLE long4 rotate (long4 param0, long4 param1);
OVERLOADABLE long8 rotate (long8 param0, long8 param1);
OVERLOADABLE long16 rotate (long16 param0, long16 param1);
OVERLOADABLE uchar2 rotate (uchar2 param0, uchar2 param1);
OVERLOADABLE uchar3 rotate (uchar3 param0, uchar3 param1);
OVERLOADABLE uchar4 rotate (uchar4 param0, uchar4 param1);
OVERLOADABLE uchar8 rotate (uchar8 param0, uchar8 param1);
OVERLOADABLE uchar16 rotate (uchar16 param0, uchar16 param1);
OVERLOADABLE ushort2 rotate (ushort2 param0, ushort2 param1);
OVERLOADABLE ushort3 rotate (ushort3 param0, ushort3 param1);
OVERLOADABLE ushort4 rotate (ushort4 param0, ushort4 param1);
OVERLOADABLE ushort8 rotate (ushort8 param0, ushort8 param1);
OVERLOADABLE ushort16 rotate (ushort16 param0, ushort16 param1);
OVERLOADABLE uint2 rotate (uint2 param0, uint2 param1);
OVERLOADABLE uint3 rotate (uint3 param0, uint3 param1);
OVERLOADABLE uint4 rotate (uint4 param0, uint4 param1);
OVERLOADABLE uint8 rotate (uint8 param0, uint8 param1);
OVERLOADABLE uint16 rotate (uint16 param0, uint16 param1);
OVERLOADABLE ulong2 rotate (ulong2 param0, ulong2 param1);
OVERLOADABLE ulong3 rotate (ulong3 param0, ulong3 param1);
OVERLOADABLE ulong4 rotate (ulong4 param0, ulong4 param1);
OVERLOADABLE ulong8 rotate (ulong8 param0, ulong8 param1);
OVERLOADABLE ulong16 rotate (ulong16 param0, ulong16 param1);

//gentype sub_sat (gentype x,  gentype y)

OVERLOADABLE char2 sub_sat (char2 param0, char2 param1);
OVERLOADABLE char3 sub_sat (char3 param0, char3 param1);
OVERLOADABLE char4 sub_sat (char4 param0, char4 param1);
OVERLOADABLE char8 sub_sat (char8 param0, char8 param1);
OVERLOADABLE char16 sub_sat (char16 param0, char16 param1);
OVERLOADABLE short2 sub_sat (short2 param0, short2 param1);
OVERLOADABLE short3 sub_sat (short3 param0, short3 param1);
OVERLOADABLE short4 sub_sat (short4 param0, short4 param1);
OVERLOADABLE short8 sub_sat (short8 param0, short8 param1);
OVERLOADABLE short16 sub_sat (short16 param0, short16 param1);
OVERLOADABLE int2 sub_sat (int2 param0, int2 param1);
OVERLOADABLE int3 sub_sat (int3 param0, int3 param1);
OVERLOADABLE int4 sub_sat (int4 param0, int4 param1);
OVERLOADABLE int8 sub_sat (int8 param0, int8 param1);
OVERLOADABLE int16 sub_sat (int16 param0, int16 param1);
OVERLOADABLE long2 sub_sat (long2 param0, long2 param1);
OVERLOADABLE long3 sub_sat (long3 param0, long3 param1);
OVERLOADABLE long4 sub_sat (long4 param0, long4 param1);
OVERLOADABLE long8 sub_sat (long8 param0, long8 param1);
OVERLOADABLE long16 sub_sat (long16 param0, long16 param1);
OVERLOADABLE uchar2 sub_sat (uchar2 param0, uchar2 param1);
OVERLOADABLE uchar3 sub_sat (uchar3 param0, uchar3 param1);
OVERLOADABLE uchar4 sub_sat (uchar4 param0, uchar4 param1);
OVERLOADABLE uchar8 sub_sat (uchar8 param0, uchar8 param1);
OVERLOADABLE uchar16 sub_sat (uchar16 param0, uchar16 param1);
OVERLOADABLE ushort2 sub_sat (ushort2 param0, ushort2 param1);
OVERLOADABLE ushort3 sub_sat (ushort3 param0, ushort3 param1);
OVERLOADABLE ushort4 sub_sat (ushort4 param0, ushort4 param1);
OVERLOADABLE ushort8 sub_sat (ushort8 param0, ushort8 param1);
OVERLOADABLE ushort16 sub_sat (ushort16 param0, ushort16 param1);
OVERLOADABLE uint2 sub_sat (uint2 param0, uint2 param1);
OVERLOADABLE uint3 sub_sat (uint3 param0, uint3 param1);
OVERLOADABLE uint4 sub_sat (uint4 param0, uint4 param1);
OVERLOADABLE uint8 sub_sat (uint8 param0, uint8 param1);
OVERLOADABLE uint16 sub_sat (uint16 param0, uint16 param1);
OVERLOADABLE ulong2 sub_sat (ulong2 param0, ulong2 param1);
OVERLOADABLE ulong3 sub_sat (ulong3 param0, ulong3 param1);
OVERLOADABLE ulong4 sub_sat (ulong4 param0, ulong4 param1);
OVERLOADABLE ulong8 sub_sat (ulong8 param0, ulong8 param1);
OVERLOADABLE ulong16 sub_sat (ulong16 param0, ulong16 param1);

//shortn upsample (charn hi, ucharn lo)

OVERLOADABLE short2 upsample (char2 param0, uchar2 param1);
OVERLOADABLE short3 upsample (char3 param0, uchar3 param1);
OVERLOADABLE short4 upsample (char4 param0, uchar4 param1);
OVERLOADABLE short8 upsample (char8 param0, uchar8 param1);
OVERLOADABLE short16 upsample (char16 param0, uchar16 param1);

//ushortn upsample (ucharn hi, ucharn lo)

OVERLOADABLE ushort2 upsample (uchar2 param0, uchar2 param1);
OVERLOADABLE ushort3 upsample (uchar3 param0, uchar3 param1);
OVERLOADABLE ushort4 upsample (uchar4 param0, uchar4 param1);
OVERLOADABLE ushort8 upsample (uchar8 param0, uchar8 param1);
OVERLOADABLE ushort16 upsample (uchar16 param0, uchar16 param1);

//intn upsample (shortn hi, ushortn lo)

OVERLOADABLE int2 upsample (short2 param0, ushort2 param1);
OVERLOADABLE int3 upsample (short3 param0, ushort3 param1);
OVERLOADABLE int4 upsample (short4 param0, ushort4 param1);
OVERLOADABLE int8 upsample (short8 param0, ushort8 param1);
OVERLOADABLE int16 upsample (short16 param0, ushort16 param1);

//uintn upsample (ushortn hi, ushortn lo)

OVERLOADABLE uint2 upsample (ushort2 param0, ushort2 param1);
OVERLOADABLE uint3 upsample (ushort3 param0, ushort3 param1);
OVERLOADABLE uint4 upsample (ushort4 param0, ushort4 param1);
OVERLOADABLE uint8 upsample (ushort8 param0, ushort8 param1);
OVERLOADABLE uint16 upsample (ushort16 param0, ushort16 param1);

//longn upsample (intn hi, uintn lo)

OVERLOADABLE long2 upsample (int2 param0, uint2 param1);
OVERLOADABLE long3 upsample (int3 param0, uint3 param1);
OVERLOADABLE long4 upsample (int4 param0, uint4 param1);
OVERLOADABLE long8 upsample (int8 param0, uint8 param1);
OVERLOADABLE long16 upsample (int16 param0, uint16 param1);

//ulongn upsample (uintn hi, uintn lo)

OVERLOADABLE ulong2 upsample (uint2 param0, uint2 param1);
OVERLOADABLE ulong3 upsample (uint3 param0, uint3 param1);
OVERLOADABLE ulong4 upsample (uint4 param0, uint4 param1);
OVERLOADABLE ulong8 upsample (uint8 param0, uint8 param1);
OVERLOADABLE ulong16 upsample (uint16 param0, uint16 param1);

//gentype popcount (gentype x)

OVERLOADABLE char2 popcount (char2 param0);
OVERLOADABLE char3 popcount (char3 param0);
OVERLOADABLE char4 popcount (char4 param0);
OVERLOADABLE char8 popcount (char8 param0);
OVERLOADABLE char16 popcount (char16 param0);
OVERLOADABLE short2 popcount (short2 param0);
OVERLOADABLE short3 popcount (short3 param0);
OVERLOADABLE short4 popcount (short4 param0);
OVERLOADABLE short8 popcount (short8 param0);
OVERLOADABLE short16 popcount (short16 param0);
OVERLOADABLE int2 popcount (int2 param0);
OVERLOADABLE int3 popcount (int3 param0);
OVERLOADABLE int4 popcount (int4 param0);
OVERLOADABLE int8 popcount (int8 param0);
OVERLOADABLE int16 popcount (int16 param0);
OVERLOADABLE long2 popcount (long2 param0);
OVERLOADABLE long3 popcount (long3 param0);
OVERLOADABLE long4 popcount (long4 param0);
OVERLOADABLE long8 popcount (long8 param0);
OVERLOADABLE long16 popcount (long16 param0);
OVERLOADABLE uchar2 popcount (uchar2 param0);
OVERLOADABLE uchar3 popcount (uchar3 param0);
OVERLOADABLE uchar4 popcount (uchar4 param0);
OVERLOADABLE uchar8 popcount (uchar8 param0);
OVERLOADABLE uchar16 popcount (uchar16 param0);
OVERLOADABLE ushort2 popcount (ushort2 param0);
OVERLOADABLE ushort3 popcount (ushort3 param0);
OVERLOADABLE ushort4 popcount (ushort4 param0);
OVERLOADABLE ushort8 popcount (ushort8 param0);
OVERLOADABLE ushort16 popcount (ushort16 param0);
OVERLOADABLE uint2 popcount (uint2 param0);
OVERLOADABLE uint3 popcount (uint3 param0);
OVERLOADABLE uint4 popcount (uint4 param0);
OVERLOADABLE uint8 popcount (uint8 param0);
OVERLOADABLE uint16 popcount (uint16 param0);
OVERLOADABLE ulong2 popcount (ulong2 param0);
OVERLOADABLE ulong3 popcount (ulong3 param0);
OVERLOADABLE ulong4 popcount (ulong4 param0);
OVERLOADABLE ulong8 popcount (ulong8 param0);
OVERLOADABLE ulong16 popcount (ulong16 param0);

//fast_integer builtin functions
//gentype mad24 (gentype x, gentype y, gentype z)

OVERLOADABLE uint2 mad24 (uint2 param0, uint2 param1, uint2 param2);
OVERLOADABLE uint3 mad24 (uint3 param0, uint3 param1, uint3 param2);
OVERLOADABLE uint4 mad24 (uint4 param0, uint4 param1, uint4 param2);
OVERLOADABLE uint8 mad24 (uint8 param0, uint8 param1, uint8 param2);
OVERLOADABLE uint16 mad24 (uint16 param0, uint16 param1, uint16 param2);
OVERLOADABLE int2 mad24 (int2 param0, int2 param1, int2 param2);
OVERLOADABLE int3 mad24 (int3 param0, int3 param1, int3 param2);
OVERLOADABLE int4 mad24 (int4 param0, int4 param1, int4 param2);
OVERLOADABLE int8 mad24 (int8 param0, int8 param1, int8 param2);
OVERLOADABLE int16 mad24 (int16 param0, int16 param1, int16 param2);

//gentype mul24 (gentype x, gentype y)

OVERLOADABLE uint2 mul24 (uint2 param0, uint2 param1);
OVERLOADABLE uint3 mul24 (uint3 param0, uint3 param1);
OVERLOADABLE uint4 mul24 (uint4 param0, uint4 param1);
OVERLOADABLE uint8 mul24 (uint8 param0, uint8 param1);
OVERLOADABLE uint16 mul24 (uint16 param0, uint16 param1);
OVERLOADABLE int2 mul24 (int2 param0, int2 param1);
OVERLOADABLE int3 mul24 (int3 param0, int3 param1);
OVERLOADABLE int4 mul24 (int4 param0, int4 param1);
OVERLOADABLE int8 mul24 (int8 param0, int8 param1);
OVERLOADABLE int16 mul24 (int16 param0, int16 param1);

#endif