100 lines · plain
1; RUN: llc -mtriple=amdgcn -mcpu=gfx600 < %s | FileCheck --check-prefix=GCN %s2; RUN: llc -mtriple=amdgcn -mcpu=gfx700 < %s | FileCheck --check-prefix=GCN %s3; RUN: llc -mtriple=amdgcn -mcpu=gfx801 < %s | FileCheck --check-prefix=GCN %s4; RUN: llc -mtriple=amdgcn -mcpu=gfx900 < %s | FileCheck --check-prefix=GCN %s5 6; GCN-LABEL: {{^}}scalar_andn2_i32_one_use7; GCN: s_andn2_b328define amdgpu_kernel void @scalar_andn2_i32_one_use(9 ptr addrspace(1) %r0, i32 %a, i32 %b) {10entry:11 %nb = xor i32 %b, -112 %r0.val = and i32 %a, %nb13 store i32 %r0.val, ptr addrspace(1) %r014 ret void15}16 17; GCN-LABEL: {{^}}scalar_andn2_i64_one_use18; GCN: s_andn2_b6419define amdgpu_kernel void @scalar_andn2_i64_one_use(20 ptr addrspace(1) %r0, i64 %a, i64 %b) {21entry:22 %nb = xor i64 %b, -123 %r0.val = and i64 %a, %nb24 store i64 %r0.val, ptr addrspace(1) %r025 ret void26}27 28; GCN-LABEL: {{^}}scalar_orn2_i32_one_use29; GCN: s_orn2_b3230define amdgpu_kernel void @scalar_orn2_i32_one_use(31 ptr addrspace(1) %r0, i32 %a, i32 %b) {32entry:33 %nb = xor i32 %b, -134 %r0.val = or i32 %a, %nb35 store i32 %r0.val, ptr addrspace(1) %r036 ret void37}38 39; GCN-LABEL: {{^}}scalar_orn2_i64_one_use40; GCN: s_orn2_b6441define amdgpu_kernel void @scalar_orn2_i64_one_use(42 ptr addrspace(1) %r0, i64 %a, i64 %b) {43entry:44 %nb = xor i64 %b, -145 %r0.val = or i64 %a, %nb46 store i64 %r0.val, ptr addrspace(1) %r047 ret void48}49 50; GCN-LABEL: {{^}}vector_andn2_i32_s_v_one_use51; GCN: v_bfi_b3252define amdgpu_kernel void @vector_andn2_i32_s_v_one_use(53 ptr addrspace(1) %r0, i32 %s) {54entry:55 %v = call i32 @llvm.amdgcn.workitem.id.x() #156 %not = xor i32 %v, -157 %r0.val = and i32 %s, %not58 store i32 %r0.val, ptr addrspace(1) %r059 ret void60}61 62; GCN-LABEL: {{^}}vector_andn2_i32_v_s_one_use63; GCN: v_bfi_b3264define amdgpu_kernel void @vector_andn2_i32_v_s_one_use(65 ptr addrspace(1) %r0, i32 %s) {66entry:67 %v = call i32 @llvm.amdgcn.workitem.id.x() #168 %not = xor i32 %s, -169 %r0.val = and i32 %v, %not70 store i32 %r0.val, ptr addrspace(1) %r071 ret void72}73 74; GCN-LABEL: {{^}}vector_orn2_i32_s_v_one_use75; GCN: v_bfi_b3276define amdgpu_kernel void @vector_orn2_i32_s_v_one_use(77 ptr addrspace(1) %r0, i32 %s) {78entry:79 %v = call i32 @llvm.amdgcn.workitem.id.x() #180 %not = xor i32 %v, -181 %r0.val = or i32 %s, %not82 store i32 %r0.val, ptr addrspace(1) %r083 ret void84}85 86; GCN-LABEL: {{^}}vector_orn2_i32_v_s_one_use87; GCN: v_bfi_b3288define amdgpu_kernel void @vector_orn2_i32_v_s_one_use(89 ptr addrspace(1) %r0, i32 %s) {90entry:91 %v = call i32 @llvm.amdgcn.workitem.id.x() #192 %not = xor i32 %s, -193 %r0.val = or i32 %v, %not94 store i32 %r0.val, ptr addrspace(1) %r095 ret void96}97 98; Function Attrs: nounwind readnone99declare i32 @llvm.amdgcn.workitem.id.x() #0100