137 lines · plain
1;RUN: llc -mtriple=r600 -mcpu=redwood < %s | FileCheck -check-prefix=EG %s2 3;EG-LABEL: {{^}}test_udiv:4;EG: RECIP_UINT5;EG: LSHL {{.*}}, 1,6;EG: BFE_UINT7;EG: BFE_UINT8;EG: BFE_UINT9;EG: BFE_UINT10;EG: BFE_UINT11;EG: BFE_UINT12;EG: BFE_UINT13;EG: BFE_UINT14;EG: BFE_UINT15;EG: BFE_UINT16;EG: BFE_UINT17;EG: BFE_UINT18;EG: BFE_UINT19;EG: BFE_UINT20;EG: BFE_UINT21;EG: BFE_UINT22;EG: BFE_UINT23;EG: BFE_UINT24;EG: BFE_UINT25;EG: BFE_UINT26;EG: BFE_UINT27;EG: BFE_UINT28;EG: BFE_UINT29;EG: BFE_UINT30;EG: BFE_UINT31;EG: BFE_UINT32;EG: BFE_UINT33;EG: BFE_UINT34;EG: BFE_UINT35;EG: BFE_UINT36define amdgpu_kernel void @test_udiv(ptr addrspace(1) %out, i64 %x, i64 %y) {37 %result = udiv i64 %x, %y38 store i64 %result, ptr addrspace(1) %out39 ret void40}41 42;EG-LABEL: {{^}}test_urem:43;EG: RECIP_UINT44;EG: BFE_UINT45;EG: BFE_UINT46;EG: BFE_UINT47;EG: BFE_UINT48;EG: BFE_UINT49;EG: BFE_UINT50;EG: BFE_UINT51;EG: BFE_UINT52;EG: BFE_UINT53;EG: BFE_UINT54;EG: BFE_UINT55;EG: BFE_UINT56;EG: BFE_UINT57;EG: BFE_UINT58;EG: BFE_UINT59;EG: BFE_UINT60;EG: BFE_UINT61;EG: BFE_UINT62;EG: BFE_UINT63;EG: BFE_UINT64;EG: BFE_UINT65;EG: BFE_UINT66;EG: BFE_UINT67;EG: BFE_UINT68;EG: BFE_UINT69;EG: BFE_UINT70;EG: BFE_UINT71;EG: BFE_UINT72;EG: BFE_UINT73;EG: BFE_UINT74;EG: AND_INT {{.*}}, 1,75define amdgpu_kernel void @test_urem(ptr addrspace(1) %out, i64 %x, i64 %y) {76 %result = urem i64 %x, %y77 store i64 %result, ptr addrspace(1) %out78 ret void79}80 81;EG-LABEL: {{^}}test_udiv3264:82;EG: RECIP_UINT83;EG-NOT: BFE_UINT84define amdgpu_kernel void @test_udiv3264(ptr addrspace(1) %out, i64 %x, i64 %y) {85 %1 = lshr i64 %x, 3386 %2 = lshr i64 %y, 3387 %result = udiv i64 %1, %288 store i64 %result, ptr addrspace(1) %out89 ret void90}91 92;EG-LABEL: {{^}}test_urem3264:93;EG: RECIP_UINT94;EG-NOT: BFE_UINT95define amdgpu_kernel void @test_urem3264(ptr addrspace(1) %out, i64 %x, i64 %y) {96 %1 = lshr i64 %x, 3397 %2 = lshr i64 %y, 3398 %result = urem i64 %1, %299 store i64 %result, ptr addrspace(1) %out100 ret void101}102 103;EG-LABEL: {{^}}test_udiv2364:104;EG: UINT_TO_FLT105;EG: UINT_TO_FLT106;EG: FLT_TO_UINT107;EG-NOT: RECIP_UINT108;EG-NOT: BFE_UINT109define amdgpu_kernel void @test_udiv2364(ptr addrspace(1) %out, i64 %x, i64 %y) {110 %1 = lshr i64 %x, 41111 %2 = lshr i64 %y, 41112 %result = udiv i64 %1, %2113 store i64 %result, ptr addrspace(1) %out114 ret void115}116 117;EG-LABEL: {{^}}test_urem2364:118;EG: UINT_TO_FLT119;EG: UINT_TO_FLT120;EG: FLT_TO_UINT121;EG-NOT: RECIP_UINT122;EG-NOT: BFE_UINT123define amdgpu_kernel void @test_urem2364(ptr addrspace(1) %out, i64 %x, i64 %y) {124 %1 = lshr i64 %x, 41125 %2 = lshr i64 %y, 41126 %result = urem i64 %1, %2127 store i64 %result, ptr addrspace(1) %out128 ret void129}130 131;EG-LABEL: {{^}}test_udiv_k:132define amdgpu_kernel void @test_udiv_k(ptr addrspace(1) %out, i64 %x) {133 %result = udiv i64 24, %x134 store i64 %result, ptr addrspace(1) %out135 ret void136}137