1f08c3bdfSopenharmony_citypedef __INT16_TYPE__ s16; 2f08c3bdfSopenharmony_citypedef __INT32_TYPE__ s32; 3f08c3bdfSopenharmony_citypedef __INT64_TYPE__ s64; 4f08c3bdfSopenharmony_citypedef __UINT16_TYPE__ u16; 5f08c3bdfSopenharmony_citypedef __UINT32_TYPE__ u32; 6f08c3bdfSopenharmony_citypedef __UINT64_TYPE__ u64; 7f08c3bdfSopenharmony_ci 8f08c3bdfSopenharmony_cis16 s16s16(s16 a, s16 b) { a >>= b; return a; } 9f08c3bdfSopenharmony_cis16 s16s32(s16 a, s32 b) { a >>= b; return a; } 10f08c3bdfSopenharmony_cis16 s16s64(s16 a, s64 b) { a >>= b; return a; } 11f08c3bdfSopenharmony_cis16 s16u16(s16 a, u16 b) { a >>= b; return a; } 12f08c3bdfSopenharmony_cis16 s16u32(s16 a, u32 b) { a >>= b; return a; } 13f08c3bdfSopenharmony_cis16 s16u64(s16 a, u64 b) { a >>= b; return a; } 14f08c3bdfSopenharmony_cis32 s32s16(s32 a, s16 b) { a >>= b; return a; } 15f08c3bdfSopenharmony_cis32 s32s32(s32 a, s32 b) { a >>= b; return a; } 16f08c3bdfSopenharmony_cis32 s32s64(s32 a, s64 b) { a >>= b; return a; } 17f08c3bdfSopenharmony_cis32 s32u16(s32 a, u16 b) { a >>= b; return a; } 18f08c3bdfSopenharmony_cis32 s32u32(s32 a, u32 b) { a >>= b; return a; } 19f08c3bdfSopenharmony_cis32 s32u64(s32 a, u64 b) { a >>= b; return a; } 20f08c3bdfSopenharmony_cis64 s64s16(s64 a, s16 b); 21f08c3bdfSopenharmony_cis64 s64s32(s64 a, s32 b); 22f08c3bdfSopenharmony_cis64 s64s64(s64 a, s64 b) { a >>= b; return a; } 23f08c3bdfSopenharmony_cis64 s64u16(s64 a, u16 b) { a >>= b; return a; } 24f08c3bdfSopenharmony_cis64 s64u32(s64 a, u32 b) { a >>= b; return a; } 25f08c3bdfSopenharmony_cis64 s64u64(s64 a, u64 b) { a >>= b; return a; } 26f08c3bdfSopenharmony_ciu16 u16s16(u16 a, s16 b) { a >>= b; return a; } 27f08c3bdfSopenharmony_ciu16 u16s32(u16 a, s32 b) { a >>= b; return a; } 28f08c3bdfSopenharmony_ciu16 u16s64(u16 a, s64 b) { a >>= b; return a; } 29f08c3bdfSopenharmony_ciu16 u16u16(u16 a, u16 b) { a >>= b; return a; } 30f08c3bdfSopenharmony_ciu16 u16u32(u16 a, u32 b) { a >>= b; return a; } 31f08c3bdfSopenharmony_ciu16 u16u64(u16 a, u64 b) { a >>= b; return a; } 32f08c3bdfSopenharmony_ciu32 u32s16(u32 a, s16 b) { a >>= b; return a; } 33f08c3bdfSopenharmony_ciu32 u32s32(u32 a, s32 b) { a >>= b; return a; } 34f08c3bdfSopenharmony_ciu32 u32s64(u32 a, s64 b) { a >>= b; return a; } 35f08c3bdfSopenharmony_ciu32 u32u16(u32 a, u16 b) { a >>= b; return a; } 36f08c3bdfSopenharmony_ciu32 u32u32(u32 a, u32 b) { a >>= b; return a; } 37f08c3bdfSopenharmony_ciu32 u32u64(u32 a, u64 b) { a >>= b; return a; } 38f08c3bdfSopenharmony_ciu64 u64s16(u64 a, s16 b); 39f08c3bdfSopenharmony_ciu64 u64s32(u64 a, s32 b); 40f08c3bdfSopenharmony_ciu64 u64s64(u64 a, s64 b) { a >>= b; return a; } 41f08c3bdfSopenharmony_ciu64 u64u16(u64 a, u16 b) { a >>= b; return a; } 42f08c3bdfSopenharmony_ciu64 u64u32(u64 a, u32 b) { a >>= b; return a; } 43f08c3bdfSopenharmony_ciu64 u64u64(u64 a, u64 b) { a >>= b; return a; } 44f08c3bdfSopenharmony_ci 45f08c3bdfSopenharmony_ci/* 46f08c3bdfSopenharmony_ci * check-name: shift-assign1 47f08c3bdfSopenharmony_ci * check-command: test-linearize -Wno-decl $file 48f08c3bdfSopenharmony_ci * 49f08c3bdfSopenharmony_ci * check-output-start 50f08c3bdfSopenharmony_cis16s16: 51f08c3bdfSopenharmony_ci.L0: 52f08c3bdfSopenharmony_ci <entry-point> 53f08c3bdfSopenharmony_ci sext.32 %r2 <- (16) %arg2 54f08c3bdfSopenharmony_ci sext.32 %r4 <- (16) %arg1 55f08c3bdfSopenharmony_ci asr.32 %r5 <- %r4, %r2 56f08c3bdfSopenharmony_ci trunc.16 %r6 <- (32) %r5 57f08c3bdfSopenharmony_ci ret.16 %r6 58f08c3bdfSopenharmony_ci 59f08c3bdfSopenharmony_ci 60f08c3bdfSopenharmony_cis16s32: 61f08c3bdfSopenharmony_ci.L2: 62f08c3bdfSopenharmony_ci <entry-point> 63f08c3bdfSopenharmony_ci sext.32 %r11 <- (16) %arg1 64f08c3bdfSopenharmony_ci asr.32 %r12 <- %r11, %arg2 65f08c3bdfSopenharmony_ci trunc.16 %r13 <- (32) %r12 66f08c3bdfSopenharmony_ci ret.16 %r13 67f08c3bdfSopenharmony_ci 68f08c3bdfSopenharmony_ci 69f08c3bdfSopenharmony_cis16s64: 70f08c3bdfSopenharmony_ci.L4: 71f08c3bdfSopenharmony_ci <entry-point> 72f08c3bdfSopenharmony_ci trunc.32 %r17 <- (64) %arg2 73f08c3bdfSopenharmony_ci sext.32 %r19 <- (16) %arg1 74f08c3bdfSopenharmony_ci asr.32 %r20 <- %r19, %r17 75f08c3bdfSopenharmony_ci trunc.16 %r21 <- (32) %r20 76f08c3bdfSopenharmony_ci ret.16 %r21 77f08c3bdfSopenharmony_ci 78f08c3bdfSopenharmony_ci 79f08c3bdfSopenharmony_cis16u16: 80f08c3bdfSopenharmony_ci.L6: 81f08c3bdfSopenharmony_ci <entry-point> 82f08c3bdfSopenharmony_ci zext.32 %r25 <- (16) %arg2 83f08c3bdfSopenharmony_ci sext.32 %r27 <- (16) %arg1 84f08c3bdfSopenharmony_ci asr.32 %r28 <- %r27, %r25 85f08c3bdfSopenharmony_ci trunc.16 %r29 <- (32) %r28 86f08c3bdfSopenharmony_ci ret.16 %r29 87f08c3bdfSopenharmony_ci 88f08c3bdfSopenharmony_ci 89f08c3bdfSopenharmony_cis16u32: 90f08c3bdfSopenharmony_ci.L8: 91f08c3bdfSopenharmony_ci <entry-point> 92f08c3bdfSopenharmony_ci sext.32 %r34 <- (16) %arg1 93f08c3bdfSopenharmony_ci asr.32 %r35 <- %r34, %arg2 94f08c3bdfSopenharmony_ci trunc.16 %r36 <- (32) %r35 95f08c3bdfSopenharmony_ci ret.16 %r36 96f08c3bdfSopenharmony_ci 97f08c3bdfSopenharmony_ci 98f08c3bdfSopenharmony_cis16u64: 99f08c3bdfSopenharmony_ci.L10: 100f08c3bdfSopenharmony_ci <entry-point> 101f08c3bdfSopenharmony_ci trunc.32 %r40 <- (64) %arg2 102f08c3bdfSopenharmony_ci sext.32 %r42 <- (16) %arg1 103f08c3bdfSopenharmony_ci asr.32 %r43 <- %r42, %r40 104f08c3bdfSopenharmony_ci trunc.16 %r44 <- (32) %r43 105f08c3bdfSopenharmony_ci ret.16 %r44 106f08c3bdfSopenharmony_ci 107f08c3bdfSopenharmony_ci 108f08c3bdfSopenharmony_cis32s16: 109f08c3bdfSopenharmony_ci.L12: 110f08c3bdfSopenharmony_ci <entry-point> 111f08c3bdfSopenharmony_ci sext.32 %r48 <- (16) %arg2 112f08c3bdfSopenharmony_ci asr.32 %r50 <- %arg1, %r48 113f08c3bdfSopenharmony_ci ret.32 %r50 114f08c3bdfSopenharmony_ci 115f08c3bdfSopenharmony_ci 116f08c3bdfSopenharmony_cis32s32: 117f08c3bdfSopenharmony_ci.L14: 118f08c3bdfSopenharmony_ci <entry-point> 119f08c3bdfSopenharmony_ci asr.32 %r55 <- %arg1, %arg2 120f08c3bdfSopenharmony_ci ret.32 %r55 121f08c3bdfSopenharmony_ci 122f08c3bdfSopenharmony_ci 123f08c3bdfSopenharmony_cis32s64: 124f08c3bdfSopenharmony_ci.L16: 125f08c3bdfSopenharmony_ci <entry-point> 126f08c3bdfSopenharmony_ci trunc.32 %r59 <- (64) %arg2 127f08c3bdfSopenharmony_ci asr.32 %r61 <- %arg1, %r59 128f08c3bdfSopenharmony_ci ret.32 %r61 129f08c3bdfSopenharmony_ci 130f08c3bdfSopenharmony_ci 131f08c3bdfSopenharmony_cis32u16: 132f08c3bdfSopenharmony_ci.L18: 133f08c3bdfSopenharmony_ci <entry-point> 134f08c3bdfSopenharmony_ci zext.32 %r65 <- (16) %arg2 135f08c3bdfSopenharmony_ci asr.32 %r67 <- %arg1, %r65 136f08c3bdfSopenharmony_ci ret.32 %r67 137f08c3bdfSopenharmony_ci 138f08c3bdfSopenharmony_ci 139f08c3bdfSopenharmony_cis32u32: 140f08c3bdfSopenharmony_ci.L20: 141f08c3bdfSopenharmony_ci <entry-point> 142f08c3bdfSopenharmony_ci asr.32 %r72 <- %arg1, %arg2 143f08c3bdfSopenharmony_ci ret.32 %r72 144f08c3bdfSopenharmony_ci 145f08c3bdfSopenharmony_ci 146f08c3bdfSopenharmony_cis32u64: 147f08c3bdfSopenharmony_ci.L22: 148f08c3bdfSopenharmony_ci <entry-point> 149f08c3bdfSopenharmony_ci trunc.32 %r76 <- (64) %arg2 150f08c3bdfSopenharmony_ci asr.32 %r78 <- %arg1, %r76 151f08c3bdfSopenharmony_ci ret.32 %r78 152f08c3bdfSopenharmony_ci 153f08c3bdfSopenharmony_ci 154f08c3bdfSopenharmony_cis64s64: 155f08c3bdfSopenharmony_ci.L24: 156f08c3bdfSopenharmony_ci <entry-point> 157f08c3bdfSopenharmony_ci asr.64 %r83 <- %arg1, %arg2 158f08c3bdfSopenharmony_ci ret.64 %r83 159f08c3bdfSopenharmony_ci 160f08c3bdfSopenharmony_ci 161f08c3bdfSopenharmony_cis64u16: 162f08c3bdfSopenharmony_ci.L26: 163f08c3bdfSopenharmony_ci <entry-point> 164f08c3bdfSopenharmony_ci zext.64 %r88 <- (16) %arg2 165f08c3bdfSopenharmony_ci asr.64 %r90 <- %arg1, %r88 166f08c3bdfSopenharmony_ci ret.64 %r90 167f08c3bdfSopenharmony_ci 168f08c3bdfSopenharmony_ci 169f08c3bdfSopenharmony_cis64u32: 170f08c3bdfSopenharmony_ci.L28: 171f08c3bdfSopenharmony_ci <entry-point> 172f08c3bdfSopenharmony_ci zext.64 %r94 <- (32) %arg2 173f08c3bdfSopenharmony_ci asr.64 %r96 <- %arg1, %r94 174f08c3bdfSopenharmony_ci ret.64 %r96 175f08c3bdfSopenharmony_ci 176f08c3bdfSopenharmony_ci 177f08c3bdfSopenharmony_cis64u64: 178f08c3bdfSopenharmony_ci.L30: 179f08c3bdfSopenharmony_ci <entry-point> 180f08c3bdfSopenharmony_ci asr.64 %r101 <- %arg1, %arg2 181f08c3bdfSopenharmony_ci ret.64 %r101 182f08c3bdfSopenharmony_ci 183f08c3bdfSopenharmony_ci 184f08c3bdfSopenharmony_ciu16s16: 185f08c3bdfSopenharmony_ci.L32: 186f08c3bdfSopenharmony_ci <entry-point> 187f08c3bdfSopenharmony_ci sext.32 %r105 <- (16) %arg2 188f08c3bdfSopenharmony_ci zext.32 %r107 <- (16) %arg1 189f08c3bdfSopenharmony_ci asr.32 %r108 <- %r107, %r105 190f08c3bdfSopenharmony_ci trunc.16 %r109 <- (32) %r108 191f08c3bdfSopenharmony_ci ret.16 %r109 192f08c3bdfSopenharmony_ci 193f08c3bdfSopenharmony_ci 194f08c3bdfSopenharmony_ciu16s32: 195f08c3bdfSopenharmony_ci.L34: 196f08c3bdfSopenharmony_ci <entry-point> 197f08c3bdfSopenharmony_ci zext.32 %r114 <- (16) %arg1 198f08c3bdfSopenharmony_ci asr.32 %r115 <- %r114, %arg2 199f08c3bdfSopenharmony_ci trunc.16 %r116 <- (32) %r115 200f08c3bdfSopenharmony_ci ret.16 %r116 201f08c3bdfSopenharmony_ci 202f08c3bdfSopenharmony_ci 203f08c3bdfSopenharmony_ciu16s64: 204f08c3bdfSopenharmony_ci.L36: 205f08c3bdfSopenharmony_ci <entry-point> 206f08c3bdfSopenharmony_ci trunc.32 %r120 <- (64) %arg2 207f08c3bdfSopenharmony_ci zext.32 %r122 <- (16) %arg1 208f08c3bdfSopenharmony_ci asr.32 %r123 <- %r122, %r120 209f08c3bdfSopenharmony_ci trunc.16 %r124 <- (32) %r123 210f08c3bdfSopenharmony_ci ret.16 %r124 211f08c3bdfSopenharmony_ci 212f08c3bdfSopenharmony_ci 213f08c3bdfSopenharmony_ciu16u16: 214f08c3bdfSopenharmony_ci.L38: 215f08c3bdfSopenharmony_ci <entry-point> 216f08c3bdfSopenharmony_ci zext.32 %r128 <- (16) %arg2 217f08c3bdfSopenharmony_ci zext.32 %r130 <- (16) %arg1 218f08c3bdfSopenharmony_ci asr.32 %r131 <- %r130, %r128 219f08c3bdfSopenharmony_ci trunc.16 %r132 <- (32) %r131 220f08c3bdfSopenharmony_ci ret.16 %r132 221f08c3bdfSopenharmony_ci 222f08c3bdfSopenharmony_ci 223f08c3bdfSopenharmony_ciu16u32: 224f08c3bdfSopenharmony_ci.L40: 225f08c3bdfSopenharmony_ci <entry-point> 226f08c3bdfSopenharmony_ci zext.32 %r137 <- (16) %arg1 227f08c3bdfSopenharmony_ci asr.32 %r138 <- %r137, %arg2 228f08c3bdfSopenharmony_ci trunc.16 %r139 <- (32) %r138 229f08c3bdfSopenharmony_ci ret.16 %r139 230f08c3bdfSopenharmony_ci 231f08c3bdfSopenharmony_ci 232f08c3bdfSopenharmony_ciu16u64: 233f08c3bdfSopenharmony_ci.L42: 234f08c3bdfSopenharmony_ci <entry-point> 235f08c3bdfSopenharmony_ci trunc.32 %r143 <- (64) %arg2 236f08c3bdfSopenharmony_ci zext.32 %r145 <- (16) %arg1 237f08c3bdfSopenharmony_ci asr.32 %r146 <- %r145, %r143 238f08c3bdfSopenharmony_ci trunc.16 %r147 <- (32) %r146 239f08c3bdfSopenharmony_ci ret.16 %r147 240f08c3bdfSopenharmony_ci 241f08c3bdfSopenharmony_ci 242f08c3bdfSopenharmony_ciu32s16: 243f08c3bdfSopenharmony_ci.L44: 244f08c3bdfSopenharmony_ci <entry-point> 245f08c3bdfSopenharmony_ci sext.32 %r151 <- (16) %arg2 246f08c3bdfSopenharmony_ci lsr.32 %r153 <- %arg1, %r151 247f08c3bdfSopenharmony_ci ret.32 %r153 248f08c3bdfSopenharmony_ci 249f08c3bdfSopenharmony_ci 250f08c3bdfSopenharmony_ciu32s32: 251f08c3bdfSopenharmony_ci.L46: 252f08c3bdfSopenharmony_ci <entry-point> 253f08c3bdfSopenharmony_ci lsr.32 %r158 <- %arg1, %arg2 254f08c3bdfSopenharmony_ci ret.32 %r158 255f08c3bdfSopenharmony_ci 256f08c3bdfSopenharmony_ci 257f08c3bdfSopenharmony_ciu32s64: 258f08c3bdfSopenharmony_ci.L48: 259f08c3bdfSopenharmony_ci <entry-point> 260f08c3bdfSopenharmony_ci trunc.32 %r162 <- (64) %arg2 261f08c3bdfSopenharmony_ci lsr.32 %r164 <- %arg1, %r162 262f08c3bdfSopenharmony_ci ret.32 %r164 263f08c3bdfSopenharmony_ci 264f08c3bdfSopenharmony_ci 265f08c3bdfSopenharmony_ciu32u16: 266f08c3bdfSopenharmony_ci.L50: 267f08c3bdfSopenharmony_ci <entry-point> 268f08c3bdfSopenharmony_ci zext.32 %r168 <- (16) %arg2 269f08c3bdfSopenharmony_ci lsr.32 %r170 <- %arg1, %r168 270f08c3bdfSopenharmony_ci ret.32 %r170 271f08c3bdfSopenharmony_ci 272f08c3bdfSopenharmony_ci 273f08c3bdfSopenharmony_ciu32u32: 274f08c3bdfSopenharmony_ci.L52: 275f08c3bdfSopenharmony_ci <entry-point> 276f08c3bdfSopenharmony_ci lsr.32 %r175 <- %arg1, %arg2 277f08c3bdfSopenharmony_ci ret.32 %r175 278f08c3bdfSopenharmony_ci 279f08c3bdfSopenharmony_ci 280f08c3bdfSopenharmony_ciu32u64: 281f08c3bdfSopenharmony_ci.L54: 282f08c3bdfSopenharmony_ci <entry-point> 283f08c3bdfSopenharmony_ci trunc.32 %r179 <- (64) %arg2 284f08c3bdfSopenharmony_ci lsr.32 %r181 <- %arg1, %r179 285f08c3bdfSopenharmony_ci ret.32 %r181 286f08c3bdfSopenharmony_ci 287f08c3bdfSopenharmony_ci 288f08c3bdfSopenharmony_ciu64s64: 289f08c3bdfSopenharmony_ci.L56: 290f08c3bdfSopenharmony_ci <entry-point> 291f08c3bdfSopenharmony_ci lsr.64 %r186 <- %arg1, %arg2 292f08c3bdfSopenharmony_ci ret.64 %r186 293f08c3bdfSopenharmony_ci 294f08c3bdfSopenharmony_ci 295f08c3bdfSopenharmony_ciu64u16: 296f08c3bdfSopenharmony_ci.L58: 297f08c3bdfSopenharmony_ci <entry-point> 298f08c3bdfSopenharmony_ci zext.64 %r191 <- (16) %arg2 299f08c3bdfSopenharmony_ci lsr.64 %r193 <- %arg1, %r191 300f08c3bdfSopenharmony_ci ret.64 %r193 301f08c3bdfSopenharmony_ci 302f08c3bdfSopenharmony_ci 303f08c3bdfSopenharmony_ciu64u32: 304f08c3bdfSopenharmony_ci.L60: 305f08c3bdfSopenharmony_ci <entry-point> 306f08c3bdfSopenharmony_ci zext.64 %r197 <- (32) %arg2 307f08c3bdfSopenharmony_ci lsr.64 %r199 <- %arg1, %r197 308f08c3bdfSopenharmony_ci ret.64 %r199 309f08c3bdfSopenharmony_ci 310f08c3bdfSopenharmony_ci 311f08c3bdfSopenharmony_ciu64u64: 312f08c3bdfSopenharmony_ci.L62: 313f08c3bdfSopenharmony_ci <entry-point> 314f08c3bdfSopenharmony_ci lsr.64 %r204 <- %arg1, %arg2 315f08c3bdfSopenharmony_ci ret.64 %r204 316f08c3bdfSopenharmony_ci 317f08c3bdfSopenharmony_ci 318f08c3bdfSopenharmony_ci * check-output-end 319f08c3bdfSopenharmony_ci */ 320