blob: 4c96fc283121060724e79bb38ed3c1c395f5edce [file] [log] [blame]
typedef __INT16_TYPE__ s16;
typedef __INT32_TYPE__ s32;
typedef __INT64_TYPE__ s64;
typedef __UINT16_TYPE__ u16;
typedef __UINT32_TYPE__ u32;
typedef __UINT64_TYPE__ u64;
s16 s16s16(s16 a, s16 b) { a >>= b; return a; }
s16 s16s32(s16 a, s32 b) { a >>= b; return a; }
s16 s16s64(s16 a, s64 b) { a >>= b; return a; }
s16 s16u16(s16 a, u16 b) { a >>= b; return a; }
s16 s16u32(s16 a, u32 b) { a >>= b; return a; }
s16 s16u64(s16 a, u64 b) { a >>= b; return a; }
s32 s32s16(s32 a, s16 b) { a >>= b; return a; }
s32 s32s32(s32 a, s32 b) { a >>= b; return a; }
s32 s32s64(s32 a, s64 b) { a >>= b; return a; }
s32 s32u16(s32 a, u16 b) { a >>= b; return a; }
s32 s32u32(s32 a, u32 b) { a >>= b; return a; }
s32 s32u64(s32 a, u64 b) { a >>= b; return a; }
s64 s64s16(s64 a, s16 b);
s64 s64s32(s64 a, s32 b);
s64 s64s64(s64 a, s64 b) { a >>= b; return a; }
s64 s64u16(s64 a, u16 b) { a >>= b; return a; }
s64 s64u32(s64 a, u32 b) { a >>= b; return a; }
s64 s64u64(s64 a, u64 b) { a >>= b; return a; }
u16 u16s16(u16 a, s16 b) { a >>= b; return a; }
u16 u16s32(u16 a, s32 b) { a >>= b; return a; }
u16 u16s64(u16 a, s64 b) { a >>= b; return a; }
u16 u16u16(u16 a, u16 b) { a >>= b; return a; }
u16 u16u32(u16 a, u32 b) { a >>= b; return a; }
u16 u16u64(u16 a, u64 b) { a >>= b; return a; }
u32 u32s16(u32 a, s16 b) { a >>= b; return a; }
u32 u32s32(u32 a, s32 b) { a >>= b; return a; }
u32 u32s64(u32 a, s64 b) { a >>= b; return a; }
u32 u32u16(u32 a, u16 b) { a >>= b; return a; }
u32 u32u32(u32 a, u32 b) { a >>= b; return a; }
u32 u32u64(u32 a, u64 b) { a >>= b; return a; }
u64 u64s16(u64 a, s16 b);
u64 u64s32(u64 a, s32 b);
u64 u64s64(u64 a, s64 b) { a >>= b; return a; }
u64 u64u16(u64 a, u16 b) { a >>= b; return a; }
u64 u64u32(u64 a, u32 b) { a >>= b; return a; }
u64 u64u64(u64 a, u64 b) { a >>= b; return a; }
/*
* check-name: shift-assign1
* check-command: test-linearize -Wno-decl $file
*
* check-output-start
s16s16:
.L0:
<entry-point>
sext.32 %r2 <- (16) %arg2
sext.32 %r4 <- (16) %arg1
asr.32 %r5 <- %r4, %r2
trunc.16 %r6 <- (32) %r5
ret.16 %r6
s16s32:
.L2:
<entry-point>
sext.32 %r11 <- (16) %arg1
asr.32 %r12 <- %r11, %arg2
trunc.16 %r13 <- (32) %r12
ret.16 %r13
s16s64:
.L4:
<entry-point>
trunc.32 %r17 <- (64) %arg2
sext.32 %r19 <- (16) %arg1
asr.32 %r20 <- %r19, %r17
trunc.16 %r21 <- (32) %r20
ret.16 %r21
s16u16:
.L6:
<entry-point>
zext.32 %r25 <- (16) %arg2
sext.32 %r27 <- (16) %arg1
asr.32 %r28 <- %r27, %r25
trunc.16 %r29 <- (32) %r28
ret.16 %r29
s16u32:
.L8:
<entry-point>
sext.32 %r34 <- (16) %arg1
asr.32 %r35 <- %r34, %arg2
trunc.16 %r36 <- (32) %r35
ret.16 %r36
s16u64:
.L10:
<entry-point>
trunc.32 %r40 <- (64) %arg2
sext.32 %r42 <- (16) %arg1
asr.32 %r43 <- %r42, %r40
trunc.16 %r44 <- (32) %r43
ret.16 %r44
s32s16:
.L12:
<entry-point>
sext.32 %r48 <- (16) %arg2
asr.32 %r50 <- %arg1, %r48
ret.32 %r50
s32s32:
.L14:
<entry-point>
asr.32 %r55 <- %arg1, %arg2
ret.32 %r55
s32s64:
.L16:
<entry-point>
trunc.32 %r59 <- (64) %arg2
asr.32 %r61 <- %arg1, %r59
ret.32 %r61
s32u16:
.L18:
<entry-point>
zext.32 %r65 <- (16) %arg2
asr.32 %r67 <- %arg1, %r65
ret.32 %r67
s32u32:
.L20:
<entry-point>
asr.32 %r72 <- %arg1, %arg2
ret.32 %r72
s32u64:
.L22:
<entry-point>
trunc.32 %r76 <- (64) %arg2
asr.32 %r78 <- %arg1, %r76
ret.32 %r78
s64s64:
.L24:
<entry-point>
asr.64 %r83 <- %arg1, %arg2
ret.64 %r83
s64u16:
.L26:
<entry-point>
zext.64 %r88 <- (16) %arg2
asr.64 %r90 <- %arg1, %r88
ret.64 %r90
s64u32:
.L28:
<entry-point>
zext.64 %r94 <- (32) %arg2
asr.64 %r96 <- %arg1, %r94
ret.64 %r96
s64u64:
.L30:
<entry-point>
asr.64 %r101 <- %arg1, %arg2
ret.64 %r101
u16s16:
.L32:
<entry-point>
sext.32 %r105 <- (16) %arg2
zext.32 %r107 <- (16) %arg1
asr.32 %r108 <- %r107, %r105
trunc.16 %r109 <- (32) %r108
ret.16 %r109
u16s32:
.L34:
<entry-point>
zext.32 %r114 <- (16) %arg1
asr.32 %r115 <- %r114, %arg2
trunc.16 %r116 <- (32) %r115
ret.16 %r116
u16s64:
.L36:
<entry-point>
trunc.32 %r120 <- (64) %arg2
zext.32 %r122 <- (16) %arg1
asr.32 %r123 <- %r122, %r120
trunc.16 %r124 <- (32) %r123
ret.16 %r124
u16u16:
.L38:
<entry-point>
zext.32 %r128 <- (16) %arg2
zext.32 %r130 <- (16) %arg1
asr.32 %r131 <- %r130, %r128
trunc.16 %r132 <- (32) %r131
ret.16 %r132
u16u32:
.L40:
<entry-point>
zext.32 %r137 <- (16) %arg1
asr.32 %r138 <- %r137, %arg2
trunc.16 %r139 <- (32) %r138
ret.16 %r139
u16u64:
.L42:
<entry-point>
trunc.32 %r143 <- (64) %arg2
zext.32 %r145 <- (16) %arg1
asr.32 %r146 <- %r145, %r143
trunc.16 %r147 <- (32) %r146
ret.16 %r147
u32s16:
.L44:
<entry-point>
sext.32 %r151 <- (16) %arg2
lsr.32 %r153 <- %arg1, %r151
ret.32 %r153
u32s32:
.L46:
<entry-point>
lsr.32 %r158 <- %arg1, %arg2
ret.32 %r158
u32s64:
.L48:
<entry-point>
trunc.32 %r162 <- (64) %arg2
lsr.32 %r164 <- %arg1, %r162
ret.32 %r164
u32u16:
.L50:
<entry-point>
zext.32 %r168 <- (16) %arg2
lsr.32 %r170 <- %arg1, %r168
ret.32 %r170
u32u32:
.L52:
<entry-point>
lsr.32 %r175 <- %arg1, %arg2
ret.32 %r175
u32u64:
.L54:
<entry-point>
trunc.32 %r179 <- (64) %arg2
lsr.32 %r181 <- %arg1, %r179
ret.32 %r181
u64s64:
.L56:
<entry-point>
lsr.64 %r186 <- %arg1, %arg2
ret.64 %r186
u64u16:
.L58:
<entry-point>
zext.64 %r191 <- (16) %arg2
lsr.64 %r193 <- %arg1, %r191
ret.64 %r193
u64u32:
.L60:
<entry-point>
zext.64 %r197 <- (32) %arg2
lsr.64 %r199 <- %arg1, %r197
ret.64 %r199
u64u64:
.L62:
<entry-point>
lsr.64 %r204 <- %arg1, %arg2
ret.64 %r204
* check-output-end
*/