blob: 2549f346f2032ac645d67c89754c83630fca1036 [file] [log] [blame]
Reid Spencer0f1725e2006-12-03 16:17:19 +00001; RUN: llvm-upgrade %s | llvm-as -f -o %t.bc
Tanya Lattner2acf9b02004-11-06 23:32:43 +00002; RUN: lli %t.bc > /dev/null
3
Brian Gaekeac534242002-10-31 23:05:22 +00004; test shifts
Misha Brukman999f5d62002-12-13 05:44:21 +00005int %main() {
Chris Lattner13bf32b2003-01-13 00:57:49 +00006 %shamt = add ubyte 0, 1
7
8 ; Left shifts...
Reid Spencerdeb4d5a2006-12-31 06:02:00 +00009 %t1.s = shl int 1, ubyte %shamt
10 %t2.s = shl int 1, ubyte 4
Chris Lattner13bf32b2003-01-13 00:57:49 +000011
12 %t1 = shl uint 1, ubyte %shamt
13 %t2 = shl uint 1, ubyte 5
14
15 ;%t1 = shl long 1, ubyte %shamt
Reid Spencerdeb4d5a2006-12-31 06:02:00 +000016 %t2.s = shl long 1, ubyte 4
Chris Lattner13bf32b2003-01-13 00:57:49 +000017
18 ;%t1 = shl ulong 1, ubyte %shamt
19 %t2 = shl ulong 1, ubyte 5
20
21 ; Right shifts...
Reid Spencerdeb4d5a2006-12-31 06:02:00 +000022 %tr1.s = shr int 1, ubyte %shamt
23 %tr2.s = shr int 1, ubyte 4
Chris Lattner13bf32b2003-01-13 00:57:49 +000024
John Criswell96be6502003-11-26 14:45:37 +000025 %tr1 = shr uint 1, ubyte %shamt
26 %tr2 = shr uint 1, ubyte 5
Chris Lattner13bf32b2003-01-13 00:57:49 +000027
John Criswell96be6502003-11-26 14:45:37 +000028 ;%tr1 = shr long 1, ubyte %shamt
Reid Spencerdeb4d5a2006-12-31 06:02:00 +000029 %tr1.l = shr long 1, ubyte 4
30 %tr2.l = shr long 1, ubyte %shamt
31 %tr3.l = shl long 1, ubyte 4
32 %tr4.l = shl long 1, ubyte %shamt
Chris Lattner13bf32b2003-01-13 00:57:49 +000033
34 ;%t1 = shr ulong 1, ubyte %shamt
Reid Spencerdeb4d5a2006-12-31 06:02:00 +000035 %tr1.u = shr ulong 1, ubyte 5
36 %tr2.u = shr ulong 1, ubyte %shamt
37 %tr3.u = shl ulong 1, ubyte 5
38 %tr4.u = shl ulong 1, ubyte %shamt
Misha Brukman999f5d62002-12-13 05:44:21 +000039 ret int 0
Brian Gaekeac534242002-10-31 23:05:22 +000040}