blob: d4351a87ce9433af68fa93bf68a71767784cd5a6 [file] [log] [blame]
Bill Wendling57f8e5e2012-04-08 11:00:38 +00001; RUN: llvm-as < %s | llvm-dis | llvm-as | llvm-dis | FileCheck %s
Duncan P. N. Exon Smithc8eccd12014-08-19 21:08:27 +00002; RUN: verify-uselistorder %s
Nate Begemanfecbc8c2008-07-29 15:49:41 +00003
Bill Wendling57f8e5e2012-04-08 11:00:38 +00004; CHECK: @foo
5; CHECK: shl
Nate Begemanfecbc8c2008-07-29 15:49:41 +00006define <4 x i32> @foo(<4 x i32> %a, <4 x i32> %b) nounwind {
7entry:
Bill Wendling57f8e5e2012-04-08 11:00:38 +00008 %cmp = shl <4 x i32> %a, %b ; <4 x i32> [#uses=1]
9 ret <4 x i32> %cmp
Nate Begemanfecbc8c2008-07-29 15:49:41 +000010}
11
Bill Wendling57f8e5e2012-04-08 11:00:38 +000012; CHECK: @bar
13; CHECK: lshr
Nate Begemanfecbc8c2008-07-29 15:49:41 +000014define <4 x i32> @bar(<4 x i32> %a, <4 x i32> %b) nounwind {
15entry:
Bill Wendling57f8e5e2012-04-08 11:00:38 +000016 %cmp = lshr <4 x i32> %a, %b ; <4 x i32> [#uses=1]
17 ret <4 x i32> %cmp
Nate Begemanfecbc8c2008-07-29 15:49:41 +000018}
19
Bill Wendling57f8e5e2012-04-08 11:00:38 +000020; CHECK: @baz
21; CHECK: ashr
Nate Begemanfecbc8c2008-07-29 15:49:41 +000022define <4 x i32> @baz(<4 x i32> %a, <4 x i32> %b) nounwind {
23entry:
Bill Wendling57f8e5e2012-04-08 11:00:38 +000024 %cmp = ashr <4 x i32> %a, %b ; <4 x i32> [#uses=1]
25 ret <4 x i32> %cmp
Nate Begemanfecbc8c2008-07-29 15:49:41 +000026}
Dan Gohman79975d52009-03-14 17:09:17 +000027
28; Constant expressions: these should be folded.
Bill Wendling57f8e5e2012-04-08 11:00:38 +000029
30; CHECK: @foo_ce
31; CHECK: ret <2 x i64> <i64 40, i64 192>
Dan Gohman79975d52009-03-14 17:09:17 +000032define <2 x i64> @foo_ce() nounwind {
33 ret <2 x i64> shl (<2 x i64> <i64 5, i64 6>, <2 x i64> <i64 3, i64 5>)
34}
Bill Wendling57f8e5e2012-04-08 11:00:38 +000035
36; CHECK: @bar_ce
37; CHECK: ret <2 x i64> <i64 42, i64 11>
Dan Gohman79975d52009-03-14 17:09:17 +000038define <2 x i64> @bar_ce() nounwind {
39 ret <2 x i64> lshr (<2 x i64> <i64 340, i64 380>, <2 x i64> <i64 3, i64 5>)
40}
Bill Wendling57f8e5e2012-04-08 11:00:38 +000041
42; CHECK: baz_ce
43; CHECK: ret <2 x i64> <i64 71, i64 12>
Dan Gohman79975d52009-03-14 17:09:17 +000044define <2 x i64> @baz_ce() nounwind {
45 ret <2 x i64> ashr (<2 x i64> <i64 573, i64 411>, <2 x i64> <i64 3, i64 5>)
46}