brintos

brintos / llvm-project-archived public Read only

0
0
Text · 7.1 KiB · 9159393 Raw
167 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 42; RUN: opt -S -mtriple=amdgcn-amd-amdhsa -passes=atomic-expand %s | FileCheck %s3 4define void @store_atomic_f32_global_system(float %val, ptr addrspace(1) %ptr) {5; CHECK-LABEL: define void @store_atomic_f32_global_system(6; CHECK-SAME: float [[VAL:%.*]], ptr addrspace(1) [[PTR:%.*]]) {7; CHECK-NEXT:    store atomic float [[VAL]], ptr addrspace(1) [[PTR]] seq_cst, align 4, !some.unknown.md [[META0:![0-9]+]]8; CHECK-NEXT:    ret void9;10  store atomic float %val, ptr addrspace(1) %ptr seq_cst, align 4, !some.unknown.md !011  ret void12}13 14define void @store_atomic_f32_global_agent(float %val, ptr addrspace(1) %ptr) {15; CHECK-LABEL: define void @store_atomic_f32_global_agent(16; CHECK-SAME: float [[VAL:%.*]], ptr addrspace(1) [[PTR:%.*]]) {17; CHECK-NEXT:    store atomic float [[VAL]], ptr addrspace(1) [[PTR]] syncscope("agent") seq_cst, align 4, !some.unknown.md [[META0]]18; CHECK-NEXT:    ret void19;20  store atomic float %val, ptr addrspace(1) %ptr syncscope("agent") seq_cst, align 4, !some.unknown.md !021  ret void22}23 24define void @store_atomic_f32_local(float %val, ptr addrspace(3) %ptr) {25; CHECK-LABEL: define void @store_atomic_f32_local(26; CHECK-SAME: float [[VAL:%.*]], ptr addrspace(3) [[PTR:%.*]]) {27; CHECK-NEXT:    store atomic float [[VAL]], ptr addrspace(3) [[PTR]] seq_cst, align 4, !some.unknown.md [[META0]]28; CHECK-NEXT:    ret void29;30  store atomic float %val, ptr addrspace(3) %ptr seq_cst, align 4, !some.unknown.md !031  ret void32}33 34define void @store_atomic_f32_flat(float %val, ptr %ptr) {35; CHECK-LABEL: define void @store_atomic_f32_flat(36; CHECK-SAME: float [[VAL:%.*]], ptr [[PTR:%.*]]) {37; CHECK-NEXT:    store atomic float [[VAL]], ptr [[PTR]] seq_cst, align 4, !some.unknown.md [[META0]]38; CHECK-NEXT:    ret void39;40  store atomic float %val, ptr %ptr seq_cst, align 4, !some.unknown.md !041  ret void42}43 44define void @store_atomic_f16_global_system(half %val, ptr addrspace(1) %ptr) {45; CHECK-LABEL: define void @store_atomic_f16_global_system(46; CHECK-SAME: half [[VAL:%.*]], ptr addrspace(1) [[PTR:%.*]]) {47; CHECK-NEXT:    store atomic half [[VAL]], ptr addrspace(1) [[PTR]] seq_cst, align 4, !some.unknown.md [[META0]]48; CHECK-NEXT:    ret void49;50  store atomic half %val, ptr addrspace(1) %ptr seq_cst, align 4, !some.unknown.md !051  ret void52}53 54define void @store_atomic_f16_global_agent(half %val, ptr addrspace(1) %ptr) {55; CHECK-LABEL: define void @store_atomic_f16_global_agent(56; CHECK-SAME: half [[VAL:%.*]], ptr addrspace(1) [[PTR:%.*]]) {57; CHECK-NEXT:    store atomic half [[VAL]], ptr addrspace(1) [[PTR]] syncscope("agent") seq_cst, align 4, !some.unknown.md [[META0]]58; CHECK-NEXT:    ret void59;60  store atomic half %val, ptr addrspace(1) %ptr syncscope("agent") seq_cst, align 4, !some.unknown.md !061  ret void62}63 64define void @store_atomic_f16_local(half %val, ptr addrspace(3) %ptr) {65; CHECK-LABEL: define void @store_atomic_f16_local(66; CHECK-SAME: half [[VAL:%.*]], ptr addrspace(3) [[PTR:%.*]]) {67; CHECK-NEXT:    store atomic half [[VAL]], ptr addrspace(3) [[PTR]] seq_cst, align 4, !some.unknown.md [[META0]]68; CHECK-NEXT:    ret void69;70  store atomic half %val, ptr addrspace(3) %ptr seq_cst, align 4, !some.unknown.md !071  ret void72}73 74define void @store_atomic_f16_flat(half %val, ptr %ptr) {75; CHECK-LABEL: define void @store_atomic_f16_flat(76; CHECK-SAME: half [[VAL:%.*]], ptr [[PTR:%.*]]) {77; CHECK-NEXT:    store atomic half [[VAL]], ptr [[PTR]] seq_cst, align 4, !some.unknown.md [[META0]]78; CHECK-NEXT:    ret void79;80  store atomic half %val, ptr %ptr seq_cst, align 4, !some.unknown.md !081  ret void82}83 84define void @store_atomic_bf16_global_system(bfloat %val, ptr addrspace(1) %ptr) {85; CHECK-LABEL: define void @store_atomic_bf16_global_system(86; CHECK-SAME: bfloat [[VAL:%.*]], ptr addrspace(1) [[PTR:%.*]]) {87; CHECK-NEXT:    store atomic bfloat [[VAL]], ptr addrspace(1) [[PTR]] seq_cst, align 4, !some.unknown.md [[META0]]88; CHECK-NEXT:    ret void89;90  store atomic bfloat %val, ptr addrspace(1) %ptr seq_cst, align 4, !some.unknown.md !091  ret void92}93 94define void @store_atomic_bf16_global_agent(bfloat %val, ptr addrspace(1) %ptr) {95; CHECK-LABEL: define void @store_atomic_bf16_global_agent(96; CHECK-SAME: bfloat [[VAL:%.*]], ptr addrspace(1) [[PTR:%.*]]) {97; CHECK-NEXT:    store atomic bfloat [[VAL]], ptr addrspace(1) [[PTR]] syncscope("agent") seq_cst, align 4, !some.unknown.md [[META0]]98; CHECK-NEXT:    ret void99;100  store atomic bfloat %val, ptr addrspace(1) %ptr syncscope("agent") seq_cst, align 4, !some.unknown.md !0101  ret void102}103 104define void @store_atomic_bf16_local(bfloat %val, ptr addrspace(3) %ptr) {105; CHECK-LABEL: define void @store_atomic_bf16_local(106; CHECK-SAME: bfloat [[VAL:%.*]], ptr addrspace(3) [[PTR:%.*]]) {107; CHECK-NEXT:    store atomic bfloat [[VAL]], ptr addrspace(3) [[PTR]] seq_cst, align 4, !some.unknown.md [[META0]]108; CHECK-NEXT:    ret void109;110  store atomic bfloat %val, ptr addrspace(3) %ptr seq_cst, align 4, !some.unknown.md !0111  ret void112}113 114define void @store_atomic_bf16_flat(bfloat %val, ptr %ptr) {115; CHECK-LABEL: define void @store_atomic_bf16_flat(116; CHECK-SAME: bfloat [[VAL:%.*]], ptr [[PTR:%.*]]) {117; CHECK-NEXT:    store atomic bfloat [[VAL]], ptr [[PTR]] seq_cst, align 4, !some.unknown.md [[META0]]118; CHECK-NEXT:    ret void119;120  store atomic bfloat %val, ptr %ptr seq_cst, align 4, !some.unknown.md !0121  ret void122}123define void @store_atomic_f64_global_system(double %val, ptr addrspace(1) %ptr) {124; CHECK-LABEL: define void @store_atomic_f64_global_system(125; CHECK-SAME: double [[VAL:%.*]], ptr addrspace(1) [[PTR:%.*]]) {126; CHECK-NEXT:    store atomic double [[VAL]], ptr addrspace(1) [[PTR]] seq_cst, align 8, !some.unknown.md [[META0]]127; CHECK-NEXT:    ret void128;129  store atomic double %val, ptr addrspace(1) %ptr seq_cst, align 8, !some.unknown.md !0130  ret void131}132 133define void @store_atomic_f64_global_agent(double %val, ptr addrspace(1) %ptr) {134; CHECK-LABEL: define void @store_atomic_f64_global_agent(135; CHECK-SAME: double [[VAL:%.*]], ptr addrspace(1) [[PTR:%.*]]) {136; CHECK-NEXT:    store atomic double [[VAL]], ptr addrspace(1) [[PTR]] syncscope("agent") seq_cst, align 8, !some.unknown.md [[META0]]137; CHECK-NEXT:    ret void138;139  store atomic double %val, ptr addrspace(1) %ptr syncscope("agent") seq_cst, align 8, !some.unknown.md !0140  ret void141}142 143define void @store_atomic_f64_local(double %val, ptr addrspace(3) %ptr) {144; CHECK-LABEL: define void @store_atomic_f64_local(145; CHECK-SAME: double [[VAL:%.*]], ptr addrspace(3) [[PTR:%.*]]) {146; CHECK-NEXT:    store atomic double [[VAL]], ptr addrspace(3) [[PTR]] seq_cst, align 8, !some.unknown.md [[META0]]147; CHECK-NEXT:    ret void148;149  store atomic double %val, ptr addrspace(3) %ptr seq_cst, align 8, !some.unknown.md !0150  ret void151}152 153define void @store_atomic_f64_flat(double %val, ptr %ptr) {154; CHECK-LABEL: define void @store_atomic_f64_flat(155; CHECK-SAME: double [[VAL:%.*]], ptr [[PTR:%.*]]) {156; CHECK-NEXT:    store atomic double [[VAL]], ptr [[PTR]] seq_cst, align 8, !some.unknown.md [[META0]]157; CHECK-NEXT:    ret void158;159  store atomic double %val, ptr %ptr seq_cst, align 8, !some.unknown.md !0160  ret void161}162 163!0 = !{}164;.165; CHECK: [[META0]] = !{}166;.167