1; RUN: llc -march=r600 -mcpu=SI -verify-machineinstrs < %s | FileCheck -check-prefix=SI %s 2 3; SI-LABEL: @test_i64_eq: 4; SI: V_CMP_EQ_I64 5define void @test_i64_eq(i32 addrspace(1)* %out, i64 %a, i64 %b) nounwind { 6 %cmp = icmp eq i64 %a, %b 7 %result = sext i1 %cmp to i32 8 store i32 %result, i32 addrspace(1)* %out, align 4 9 ret void 10} 11 12; SI-LABEL: @test_i64_ne: 13; SI: V_CMP_NE_I64 14define void @test_i64_ne(i32 addrspace(1)* %out, i64 %a, i64 %b) nounwind { 15 %cmp = icmp ne i64 %a, %b 16 %result = sext i1 %cmp to i32 17 store i32 %result, i32 addrspace(1)* %out, align 4 18 ret void 19} 20 21; SI-LABEL: @test_i64_slt: 22; SI: V_CMP_LT_I64 23define void @test_i64_slt(i32 addrspace(1)* %out, i64 %a, i64 %b) nounwind { 24 %cmp = icmp slt i64 %a, %b 25 %result = sext i1 %cmp to i32 26 store i32 %result, i32 addrspace(1)* %out, align 4 27 ret void 28} 29 30; SI-LABEL: @test_i64_ult: 31; SI: V_CMP_LT_U64 32define void @test_i64_ult(i32 addrspace(1)* %out, i64 %a, i64 %b) nounwind { 33 %cmp = icmp ult i64 %a, %b 34 %result = sext i1 %cmp to i32 35 store i32 %result, i32 addrspace(1)* %out, align 4 36 ret void 37} 38 39; SI-LABEL: @test_i64_sle: 40; SI: V_CMP_LE_I64 41define void @test_i64_sle(i32 addrspace(1)* %out, i64 %a, i64 %b) nounwind { 42 %cmp = icmp sle i64 %a, %b 43 %result = sext i1 %cmp to i32 44 store i32 %result, i32 addrspace(1)* %out, align 4 45 ret void 46} 47 48; SI-LABEL: @test_i64_ule: 49; SI: V_CMP_LE_U64 50define void @test_i64_ule(i32 addrspace(1)* %out, i64 %a, i64 %b) nounwind { 51 %cmp = icmp ule i64 %a, %b 52 %result = sext i1 %cmp to i32 53 store i32 %result, i32 addrspace(1)* %out, align 4 54 ret void 55} 56 57; SI-LABEL: @test_i64_sgt: 58; SI: V_CMP_GT_I64 59define void @test_i64_sgt(i32 addrspace(1)* %out, i64 %a, i64 %b) nounwind { 60 %cmp = icmp sgt i64 %a, %b 61 %result = sext i1 %cmp to i32 62 store i32 %result, i32 addrspace(1)* %out, align 4 63 ret void 64} 65 66; SI-LABEL: @test_i64_ugt: 67; SI: V_CMP_GT_U64 68define void @test_i64_ugt(i32 addrspace(1)* %out, i64 %a, i64 %b) nounwind { 69 %cmp = icmp ugt i64 %a, %b 70 %result = sext i1 %cmp to i32 71 store i32 %result, i32 addrspace(1)* %out, align 4 72 ret void 73} 74 75; SI-LABEL: @test_i64_sge: 76; SI: V_CMP_GE_I64 77define void @test_i64_sge(i32 addrspace(1)* %out, i64 %a, i64 %b) nounwind { 78 %cmp = icmp sge i64 %a, %b 79 %result = sext i1 %cmp to i32 80 store i32 %result, i32 addrspace(1)* %out, align 4 81 ret void 82} 83 84; SI-LABEL: @test_i64_uge: 85; SI: V_CMP_GE_U64 86define void @test_i64_uge(i32 addrspace(1)* %out, i64 %a, i64 %b) nounwind { 87 %cmp = icmp uge i64 %a, %b 88 %result = sext i1 %cmp to i32 89 store i32 %result, i32 addrspace(1)* %out, align 4 90 ret void 91} 92 93