• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 typedef  __INT16_TYPE__ s16;
2 typedef  __INT32_TYPE__ s32;
3 typedef  __INT64_TYPE__ s64;
4 typedef __UINT16_TYPE__ u16;
5 typedef __UINT32_TYPE__ u32;
6 typedef __UINT64_TYPE__ u64;
7 
s64s16(s64 a,s16 b)8 s64 s64s16(s64 a, s16 b) { a >>= b; return a; }
s64s32(s64 a,s32 b)9 s64 s64s32(s64 a, s32 b) { a >>= b; return a; }
u64s16(u64 a,s16 b)10 u64 u64s16(u64 a, s16 b) { a >>= b; return a; }
u64s32(u64 a,s32 b)11 u64 u64s32(u64 a, s32 b) { a >>= b; return a; }
12 
13 /*
14  * check-name: shift-assign2
15  * check-command: test-linearize -Wno-decl $file
16  *
17  * check-output-start
18 s64s16:
19 .L0:
20 	<entry-point>
21 	sext.32     %r2 <- (16) %arg2
22 	zext.64     %r3 <- (32) %r2
23 	asr.64      %r5 <- %arg1, %r3
24 	ret.64      %r5
25 
26 
27 s64s32:
28 .L2:
29 	<entry-point>
30 	zext.64     %r9 <- (32) %arg2
31 	asr.64      %r11 <- %arg1, %r9
32 	ret.64      %r11
33 
34 
35 u64s16:
36 .L4:
37 	<entry-point>
38 	sext.32     %r15 <- (16) %arg2
39 	zext.64     %r16 <- (32) %r15
40 	lsr.64      %r18 <- %arg1, %r16
41 	ret.64      %r18
42 
43 
44 u64s32:
45 .L6:
46 	<entry-point>
47 	zext.64     %r22 <- (32) %arg2
48 	lsr.64      %r24 <- %arg1, %r22
49 	ret.64      %r24
50 
51 
52  * check-output-end
53  */
54