blob: 91ed77878f81cd0effcfcf8debb7644cfb4d26f0 [file] [log] [blame]
Justin Holewinskid0689432013-03-20 00:10:32 +00001; RUN: llc < %s -march=nvptx -mcpu=sm_20 | FileCheck %s
2
3define void @foo(<2 x i32>* %a) {
4; CHECK: .func foo
5; CHECK: ld.v2.u32
6; CHECK-NEXT: ld.v2.u32
Dehao Chen02828a92017-05-17 20:18:13 +00007; CHECK-NEXT: ld.v2.u32
Justin Holewinskid0689432013-03-20 00:10:32 +00008; CHECK-NEXT: ld.v2.u32
9; CHECK-NEXT: add.s32
10; CHECK-NEXT: add.s32
Dehao Chen02828a92017-05-17 20:18:13 +000011; CHECK-NEXT: add.s32
12; CHECK-NEXT: add.s32
Justin Holewinskid0689432013-03-20 00:10:32 +000013; CHECK-NEXT: add.s32
14; CHECK-NEXT: add.s32
David Blaikie79e6c742015-02-27 19:29:02 +000015 %ptr0 = getelementptr <2 x i32>, <2 x i32>* %a, i32 0
David Blaikiea79ac142015-02-27 21:17:42 +000016 %val0 = load <2 x i32>, <2 x i32>* %ptr0
David Blaikie79e6c742015-02-27 19:29:02 +000017 %ptr1 = getelementptr <2 x i32>, <2 x i32>* %a, i32 1
David Blaikiea79ac142015-02-27 21:17:42 +000018 %val1 = load <2 x i32>, <2 x i32>* %ptr1
David Blaikie79e6c742015-02-27 19:29:02 +000019 %ptr2 = getelementptr <2 x i32>, <2 x i32>* %a, i32 2
David Blaikiea79ac142015-02-27 21:17:42 +000020 %val2 = load <2 x i32>, <2 x i32>* %ptr2
David Blaikie79e6c742015-02-27 19:29:02 +000021 %ptr3 = getelementptr <2 x i32>, <2 x i32>* %a, i32 3
David Blaikiea79ac142015-02-27 21:17:42 +000022 %val3 = load <2 x i32>, <2 x i32>* %ptr3
Justin Holewinskid0689432013-03-20 00:10:32 +000023
24 %t0 = add <2 x i32> %val0, %val1
25 %t1 = add <2 x i32> %t0, %val2
26 %t2 = add <2 x i32> %t1, %val3
27
28 store <2 x i32> %t2, <2 x i32>* %a
29
30 ret void
31}
32