1f08c3bdfSopenharmony_ciunsigned int shl0(unsigned int x) 2f08c3bdfSopenharmony_ci{ 3f08c3bdfSopenharmony_ci return x << 15 << 15; 4f08c3bdfSopenharmony_ci} 5f08c3bdfSopenharmony_ci 6f08c3bdfSopenharmony_ciunsigned int shl1(unsigned int x) 7f08c3bdfSopenharmony_ci{ 8f08c3bdfSopenharmony_ci return x << 16 << 15; 9f08c3bdfSopenharmony_ci} 10f08c3bdfSopenharmony_ci 11f08c3bdfSopenharmony_ciunsigned int shl2(unsigned int x) 12f08c3bdfSopenharmony_ci{ 13f08c3bdfSopenharmony_ci return x << 16 << 16; 14f08c3bdfSopenharmony_ci} 15f08c3bdfSopenharmony_ci 16f08c3bdfSopenharmony_ciunsigned int shl3(unsigned int x) 17f08c3bdfSopenharmony_ci{ 18f08c3bdfSopenharmony_ci return x << 12 << 10 << 10; 19f08c3bdfSopenharmony_ci} 20f08c3bdfSopenharmony_ci 21f08c3bdfSopenharmony_ci 22f08c3bdfSopenharmony_ciunsigned int lsr0(unsigned int x) 23f08c3bdfSopenharmony_ci{ 24f08c3bdfSopenharmony_ci return x >> 15 >> 15; 25f08c3bdfSopenharmony_ci} 26f08c3bdfSopenharmony_ci 27f08c3bdfSopenharmony_ciunsigned int lsr1(unsigned int x) 28f08c3bdfSopenharmony_ci{ 29f08c3bdfSopenharmony_ci return x >> 16 >> 15; 30f08c3bdfSopenharmony_ci} 31f08c3bdfSopenharmony_ci 32f08c3bdfSopenharmony_ciunsigned int lsr2(unsigned int x) 33f08c3bdfSopenharmony_ci{ 34f08c3bdfSopenharmony_ci return x >> 16 >> 16; 35f08c3bdfSopenharmony_ci} 36f08c3bdfSopenharmony_ci 37f08c3bdfSopenharmony_ciunsigned int lsr3(unsigned int x) 38f08c3bdfSopenharmony_ci{ 39f08c3bdfSopenharmony_ci return x >> 12 >> 10 >> 10; 40f08c3bdfSopenharmony_ci} 41f08c3bdfSopenharmony_ci 42f08c3bdfSopenharmony_ci 43f08c3bdfSopenharmony_ciint asr0(int x) 44f08c3bdfSopenharmony_ci{ 45f08c3bdfSopenharmony_ci return x >> 15 >> 15; 46f08c3bdfSopenharmony_ci} 47f08c3bdfSopenharmony_ci 48f08c3bdfSopenharmony_ciint asr1(int x) 49f08c3bdfSopenharmony_ci{ 50f08c3bdfSopenharmony_ci return x >> 16 >> 15; 51f08c3bdfSopenharmony_ci} 52f08c3bdfSopenharmony_ci 53f08c3bdfSopenharmony_ciint asr2(int x) 54f08c3bdfSopenharmony_ci{ 55f08c3bdfSopenharmony_ci return x >> 16 >> 16; 56f08c3bdfSopenharmony_ci} 57f08c3bdfSopenharmony_ci 58f08c3bdfSopenharmony_ciint asr3(int x) 59f08c3bdfSopenharmony_ci{ 60f08c3bdfSopenharmony_ci return x >> 12 >> 10 >> 10; 61f08c3bdfSopenharmony_ci} 62f08c3bdfSopenharmony_ci 63f08c3bdfSopenharmony_ci/* 64f08c3bdfSopenharmony_ci * check-name: shift-shift 65f08c3bdfSopenharmony_ci * check-command: test-linearize -Wno-decl $file 66f08c3bdfSopenharmony_ci * 67f08c3bdfSopenharmony_ci * check-output-start 68f08c3bdfSopenharmony_cishl0: 69f08c3bdfSopenharmony_ci.L0: 70f08c3bdfSopenharmony_ci <entry-point> 71f08c3bdfSopenharmony_ci shl.32 %r3 <- %arg1, $30 72f08c3bdfSopenharmony_ci ret.32 %r3 73f08c3bdfSopenharmony_ci 74f08c3bdfSopenharmony_ci 75f08c3bdfSopenharmony_cishl1: 76f08c3bdfSopenharmony_ci.L2: 77f08c3bdfSopenharmony_ci <entry-point> 78f08c3bdfSopenharmony_ci shl.32 %r7 <- %arg1, $31 79f08c3bdfSopenharmony_ci ret.32 %r7 80f08c3bdfSopenharmony_ci 81f08c3bdfSopenharmony_ci 82f08c3bdfSopenharmony_cishl2: 83f08c3bdfSopenharmony_ci.L4: 84f08c3bdfSopenharmony_ci <entry-point> 85f08c3bdfSopenharmony_ci ret.32 $0 86f08c3bdfSopenharmony_ci 87f08c3bdfSopenharmony_ci 88f08c3bdfSopenharmony_cishl3: 89f08c3bdfSopenharmony_ci.L6: 90f08c3bdfSopenharmony_ci <entry-point> 91f08c3bdfSopenharmony_ci ret.32 $0 92f08c3bdfSopenharmony_ci 93f08c3bdfSopenharmony_ci 94f08c3bdfSopenharmony_cilsr0: 95f08c3bdfSopenharmony_ci.L8: 96f08c3bdfSopenharmony_ci <entry-point> 97f08c3bdfSopenharmony_ci lsr.32 %r20 <- %arg1, $30 98f08c3bdfSopenharmony_ci ret.32 %r20 99f08c3bdfSopenharmony_ci 100f08c3bdfSopenharmony_ci 101f08c3bdfSopenharmony_cilsr1: 102f08c3bdfSopenharmony_ci.L10: 103f08c3bdfSopenharmony_ci <entry-point> 104f08c3bdfSopenharmony_ci lsr.32 %r24 <- %arg1, $31 105f08c3bdfSopenharmony_ci ret.32 %r24 106f08c3bdfSopenharmony_ci 107f08c3bdfSopenharmony_ci 108f08c3bdfSopenharmony_cilsr2: 109f08c3bdfSopenharmony_ci.L12: 110f08c3bdfSopenharmony_ci <entry-point> 111f08c3bdfSopenharmony_ci ret.32 $0 112f08c3bdfSopenharmony_ci 113f08c3bdfSopenharmony_ci 114f08c3bdfSopenharmony_cilsr3: 115f08c3bdfSopenharmony_ci.L14: 116f08c3bdfSopenharmony_ci <entry-point> 117f08c3bdfSopenharmony_ci ret.32 $0 118f08c3bdfSopenharmony_ci 119f08c3bdfSopenharmony_ci 120f08c3bdfSopenharmony_ciasr0: 121f08c3bdfSopenharmony_ci.L16: 122f08c3bdfSopenharmony_ci <entry-point> 123f08c3bdfSopenharmony_ci asr.32 %r37 <- %arg1, $30 124f08c3bdfSopenharmony_ci ret.32 %r37 125f08c3bdfSopenharmony_ci 126f08c3bdfSopenharmony_ci 127f08c3bdfSopenharmony_ciasr1: 128f08c3bdfSopenharmony_ci.L18: 129f08c3bdfSopenharmony_ci <entry-point> 130f08c3bdfSopenharmony_ci asr.32 %r41 <- %arg1, $31 131f08c3bdfSopenharmony_ci ret.32 %r41 132f08c3bdfSopenharmony_ci 133f08c3bdfSopenharmony_ci 134f08c3bdfSopenharmony_ciasr2: 135f08c3bdfSopenharmony_ci.L20: 136f08c3bdfSopenharmony_ci <entry-point> 137f08c3bdfSopenharmony_ci asr.32 %r45 <- %arg1, $31 138f08c3bdfSopenharmony_ci ret.32 %r45 139f08c3bdfSopenharmony_ci 140f08c3bdfSopenharmony_ci 141f08c3bdfSopenharmony_ciasr3: 142f08c3bdfSopenharmony_ci.L22: 143f08c3bdfSopenharmony_ci <entry-point> 144f08c3bdfSopenharmony_ci asr.32 %r50 <- %arg1, $31 145f08c3bdfSopenharmony_ci ret.32 %r50 146f08c3bdfSopenharmony_ci 147f08c3bdfSopenharmony_ci 148f08c3bdfSopenharmony_ci * check-output-end 149f08c3bdfSopenharmony_ci */ 150