[WebAssembly] Don't perform the returned-argument optimization on constants.
[oota-llvm.git] / test / CodeGen / NVPTX / pr13291-i1-store.ll
1 ; RUN: llc < %s -march=nvptx -mcpu=sm_20 | FileCheck %s --check-prefix=PTX32
2 ; RUN: llc < %s -march=nvptx64 -mcpu=sm_20 | FileCheck %s --check-prefix=PTX64
3
4 define ptx_kernel void @t1(i1* %a) {
5 ; PTX32:      mov.u16 %rs{{[0-9]+}}, 0;
6 ; PTX32-NEXT: st.global.u8 [%r{{[0-9]+}}], %rs{{[0-9]+}};
7 ; PTX64:      mov.u16 %rs{{[0-9]+}}, 0;
8 ; PTX64-NEXT: st.global.u8 [%rd{{[0-9]+}}], %rs{{[0-9]+}};
9   store i1 false, i1* %a
10   ret void
11 }
12
13
14 define ptx_kernel void @t2(i1* %a, i8* %b) {
15 ; PTX32: ld.global.u8 %rs{{[0-9]+}}, [%r{{[0-9]+}}]
16 ; PTX32: and.b16 %rs{{[0-9]+}}, %rs{{[0-9]+}}, 1;
17 ; PTX32: setp.eq.b16 %p{{[0-9]+}}, %rs{{[0-9]+}}, 1;
18 ; PTX64: ld.global.u8 %rs{{[0-9]+}}, [%rd{{[0-9]+}}]
19 ; PTX64: and.b16 %rs{{[0-9]+}}, %rs{{[0-9]+}}, 1;
20 ; PTX64: setp.eq.b16 %p{{[0-9]+}}, %rs{{[0-9]+}}, 1;
21
22   %t1 = load i1, i1* %a
23   %t2 = select i1 %t1, i8 1, i8 2
24   store i8 %t2, i8* %b
25   ret void
26 }