brintos

brintos / llvm-project-archived public Read only

0
0
Text · 4.8 KiB · 1813acf Raw
100 lines · plain
1; RUN: llc -O0 -asm-verbose=0 -mtriple=amdgcn < %s | FileCheck -check-prefix=SI -check-prefix=COMMON %s2; RUN: llc -O0 -asm-verbose=0 -mtriple=amdgcn -mcpu=tonga < %s | FileCheck -check-prefix=SI -check-prefix=COMMON %s3; XUN: llc -O0 -asm-verbose=0 -mtriple=r600 -mcpu=redwood < %s | FileCheck -check-prefix=EG -check-prefix=COMMON %s4 5; SI hits an assertion at -O0, evergreen hits a not implemented unreachable.6 7; COMMON-LABEL: {{^}}branch_true:8define amdgpu_kernel void @branch_true(ptr addrspace(1) nocapture %main, i32 %main_stride) #0 {9entry:10  br i1 true, label %for.end, label %for.body.lr.ph11 12for.body.lr.ph:                                   ; preds = %entry13  %add.ptr.sum = shl i32 %main_stride, 114  %add.ptr1.sum = add i32 %add.ptr.sum, %main_stride15  %add.ptr4.sum = shl i32 %main_stride, 216  br label %for.body17 18for.body:                                         ; preds = %for.body, %for.body.lr.ph19  %main.addr.011 = phi ptr addrspace(1) [ %main, %for.body.lr.ph ], [ %add.ptr6, %for.body ]20  %0 = load i32, ptr addrspace(1) %main.addr.011, align 421  %add.ptr = getelementptr inbounds i8, ptr addrspace(1) %main.addr.011, i32 %main_stride22  %1 = load i32, ptr addrspace(1) %add.ptr, align 423  %add.ptr1 = getelementptr inbounds i8, ptr addrspace(1) %main.addr.011, i32 %add.ptr.sum24  %2 = load i32, ptr addrspace(1) %add.ptr1, align 425  %add.ptr2 = getelementptr inbounds i8, ptr addrspace(1) %main.addr.011, i32 %add.ptr1.sum26  %3 = load i32, ptr addrspace(1) %add.ptr2, align 427  %add.ptr3 = getelementptr inbounds i8, ptr addrspace(1) %main.addr.011, i32 %add.ptr4.sum28  %4 = load i32, ptr addrspace(1) %add.ptr3, align 429  %add.ptr6 = getelementptr inbounds i8, ptr addrspace(1) %main.addr.011, i32 030  br i1 poison, label %for.end, label %for.body31 32for.end:                                          ; preds = %for.body, %entry33  ret void34}35 36; COMMON-LABEL: {{^}}branch_false:37; SI: s_cbranch_scc138; SI: s_endpgm39define amdgpu_kernel void @branch_false(ptr addrspace(1) nocapture %main, i32 %main_stride) #0 {40entry:41  br i1 false, label %for.end, label %for.body.lr.ph42 43for.body.lr.ph:                                   ; preds = %entry44  %add.ptr.sum = shl i32 %main_stride, 145  %add.ptr1.sum = add i32 %add.ptr.sum, %main_stride46  %add.ptr4.sum = shl i32 %main_stride, 247  br label %for.body48 49for.body:                                         ; preds = %for.body, %for.body.lr.ph50  %main.addr.011 = phi ptr addrspace(1) [ %main, %for.body.lr.ph ], [ %add.ptr6, %for.body ]51  %0 = load i32, ptr addrspace(1) %main.addr.011, align 452  %add.ptr = getelementptr inbounds i8, ptr addrspace(1) %main.addr.011, i32 %main_stride53  %1 = load i32, ptr addrspace(1) %add.ptr, align 454  %add.ptr1 = getelementptr inbounds i8, ptr addrspace(1) %main.addr.011, i32 %add.ptr.sum55  %2 = load i32, ptr addrspace(1) %add.ptr1, align 456  %add.ptr2 = getelementptr inbounds i8, ptr addrspace(1) %main.addr.011, i32 %add.ptr1.sum57  %3 = load i32, ptr addrspace(1) %add.ptr2, align 458  %add.ptr3 = getelementptr inbounds i8, ptr addrspace(1) %main.addr.011, i32 %add.ptr4.sum59  %4 = load i32, ptr addrspace(1) %add.ptr3, align 460  %add.ptr6 = getelementptr inbounds i8, ptr addrspace(1) %main.addr.011, i32 061  br i1 poison, label %for.end, label %for.body62 63for.end:                                          ; preds = %for.body, %entry64  ret void65}66 67; COMMON-LABEL: {{^}}branch_poison:68; SI: s_cbranch_scc169; SI: s_cbranch_scc170; SI: s_endpgm71define amdgpu_kernel void @branch_poison(ptr addrspace(1) nocapture %main, i32 %main_stride) #0 {72entry:73  br i1 poison, label %for.end, label %for.body.lr.ph74 75for.body.lr.ph:                                   ; preds = %entry76  %add.ptr.sum = shl i32 %main_stride, 177  %add.ptr1.sum = add i32 %add.ptr.sum, %main_stride78  %add.ptr4.sum = shl i32 %main_stride, 279  br label %for.body80 81for.body:                                         ; preds = %for.body, %for.body.lr.ph82  %main.addr.011 = phi ptr addrspace(1) [ %main, %for.body.lr.ph ], [ %add.ptr6, %for.body ]83  %0 = load i32, ptr addrspace(1) %main.addr.011, align 484  %add.ptr = getelementptr inbounds i8, ptr addrspace(1) %main.addr.011, i32 %main_stride85  %1 = load i32, ptr addrspace(1) %add.ptr, align 486  %add.ptr1 = getelementptr inbounds i8, ptr addrspace(1) %main.addr.011, i32 %add.ptr.sum87  %2 = load i32, ptr addrspace(1) %add.ptr1, align 488  %add.ptr2 = getelementptr inbounds i8, ptr addrspace(1) %main.addr.011, i32 %add.ptr1.sum89  %3 = load i32, ptr addrspace(1) %add.ptr2, align 490  %add.ptr3 = getelementptr inbounds i8, ptr addrspace(1) %main.addr.011, i32 %add.ptr4.sum91  %4 = load i32, ptr addrspace(1) %add.ptr3, align 492  %add.ptr6 = getelementptr inbounds i8, ptr addrspace(1) %main.addr.011, i32 093  br i1 poison, label %for.end, label %for.body94 95for.end:                                          ; preds = %for.body, %entry96  ret void97}98 99attributes #0 = { nounwind }100