1 ; RUN: llc -mtriple=amdgcn -mcpu=gfx600 -verify-machineinstrs < %s | FileCheck --check-prefix=GCN %s
2 ; RUN: llc -mtriple=amdgcn -mcpu=gfx700 -verify-machineinstrs < %s | FileCheck --check-prefix=GCN %s
3 ; RUN: llc -mtriple=amdgcn -mcpu=gfx801 -verify-machineinstrs < %s | FileCheck --check-prefix=GCN %s
4 ; RUN: llc -mtriple=amdgcn -mcpu=gfx900 -verify-machineinstrs < %s | FileCheck --check-prefix=GCN %s
6 ; GCN-LABEL: {{^}}scalar_nor_i32_one_use
8 define amdgpu_kernel void @scalar_nor_i32_one_use(
9 ptr addrspace(1) %r0, i32 %a, i32 %b) {
12 %r0.val = xor i32 %or, -1
13 store i32 %r0.val, ptr addrspace(1) %r0
17 ; GCN-LABEL: {{^}}scalar_nor_i32_mul_use
22 define amdgpu_kernel void @scalar_nor_i32_mul_use(
23 ptr addrspace(1) %r0, ptr addrspace(1) %r1, i32 %a, i32 %b) {
26 %r0.val = xor i32 %or, -1
27 %r1.val = add i32 %or, %a
28 store i32 %r0.val, ptr addrspace(1) %r0
29 store i32 %r1.val, ptr addrspace(1) %r1
33 ; GCN-LABEL: {{^}}scalar_nor_i64_one_use
35 define amdgpu_kernel void @scalar_nor_i64_one_use(
36 ptr addrspace(1) %r0, i64 %a, i64 %b) {
39 %r0.val = xor i64 %or, -1
40 store i64 %r0.val, ptr addrspace(1) %r0
44 ; GCN-LABEL: {{^}}scalar_nor_i64_mul_use
50 define amdgpu_kernel void @scalar_nor_i64_mul_use(
51 ptr addrspace(1) %r0, ptr addrspace(1) %r1, i64 %a, i64 %b) {
54 %r0.val = xor i64 %or, -1
55 %r1.val = add i64 %or, %a
56 store i64 %r0.val, ptr addrspace(1) %r0
57 store i64 %r1.val, ptr addrspace(1) %r1
61 ; GCN-LABEL: {{^}}vector_nor_i32_one_use
65 define i32 @vector_nor_i32_one_use(i32 %a, i32 %b) {
72 ; GCN-LABEL: {{^}}vector_nor_i64_one_use
78 define i64 @vector_nor_i64_one_use(i64 %a, i64 %b) {