brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.5 KiB · 1fa39ff Raw
42 lines · plain
1; RUN: opt -S -passes='dxil-legalize' -mtriple=dxil-pc-shadermodel6.3-library %s | FileCheck %s2 3define float @load() {4; CHECK-LABEL: define float @load5; CHECK-NEXT:    [[ALLOCA:%.*]] = alloca [2 x float], align 46; CHECK-NEXT:    [[GEP:%.*]] = getelementptr inbounds nuw [2 x float], ptr [[ALLOCA]], i32 0, i32 07; CHECK-NEXT:    [[LOAD:%.*]] = load float, ptr [[GEP]], align 48; CHECK-NEXT:    ret float [[LOAD]]9  %a = alloca [2 x float], align 410  %b = load float, ptr %a, align 411  ret float %b12}13 14define void @store() {15; CHECK-LABEL: define void @store16; CHECK-NEXT:    [[ALLOCA:%.*]] = alloca [3 x i32], align 417; CHECK-NEXT:    [[GEP:%.*]] = getelementptr inbounds nuw [3 x i32], ptr [[ALLOCA]], i32 0, i32 018; CHECK-NEXT:    store i32 0, ptr [[GEP]], align 419; CHECK-NEXT:    ret void20  %a = alloca [3 x i32], align 421  store i32 0, ptr %a, align 422  ret void23}24 25@g = local_unnamed_addr addrspace(3) global [4 x i32] zeroinitializer, align 426define void @load_whole_global () {27; CHECK-LABEL: define void @load_whole_global28; CHECK-NEXT:    load [4 x i32], ptr addrspace(3) @g, align 429; CHECK-NEXT:    ret void30  %l = load [4 x i32], ptr addrspace(3) @g, align 431  ret void32}33 34define void @load_global_index0 () {35; CHECK-LABEL: define void @load_global_index036; CHECK-NEXT:    [[GEP:%.*]] = getelementptr inbounds nuw [4 x i32], ptr addrspace(3) @g, i32 0, i32 037; CHECK-NEXT:    load i32, ptr addrspace(3) [[GEP]], align 438; CHECK-NEXT:    ret void39  %l = load i32, ptr addrspace(3) @g, align 440  ret void41}42