brintos

brintos / llvm-project-archived public Read only

0
0
Text · 3.8 KiB · 949e60a Raw
98 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 22; RUN: opt -S < %s -passes=infer-alignment | FileCheck %s3 4; ------------------------------------------------------------------------------5; load/store of null6; ------------------------------------------------------------------------------7 8define void @load_null() {9; CHECK-LABEL: define void @load_null() {10; CHECK-NEXT:    [[X_0:%.*]] = load atomic i32, ptr null unordered, align 429496729611; CHECK-NEXT:    [[X_1:%.*]] = load atomic i32, ptr null monotonic, align 429496729612; CHECK-NEXT:    [[X_2:%.*]] = load atomic i32, ptr null seq_cst, align 429496729613; CHECK-NEXT:    ret void14;15  %x.0 = load atomic i32, ptr null unordered, align 416  %x.1 = load atomic i32, ptr null monotonic, align 417  %x.2 = load atomic i32, ptr null seq_cst, align 418  ret void19}20 21define void @store_null() {22; CHECK-LABEL: define void @store_null() {23; CHECK-NEXT:    store atomic i32 0, ptr null unordered, align 429496729624; CHECK-NEXT:    store atomic i32 0, ptr null monotonic, align 429496729625; CHECK-NEXT:    store atomic i32 0, ptr null seq_cst, align 429496729626; CHECK-NEXT:    ret void27;28  store atomic i32 0, ptr null unordered, align 429  store atomic i32 0, ptr null monotonic, align 430  store atomic i32 0, ptr null seq_cst, align 431  ret void32}33 34; ------------------------------------------------------------------------------35; load/store of global36; ------------------------------------------------------------------------------37@c = global i64 4238 39define void @load_nonnull() {40; CHECK-LABEL: define void @load_nonnull() {41; CHECK-NEXT:    [[X_0:%.*]] = load atomic i32, ptr @c unordered, align 842; CHECK-NEXT:    [[X_1:%.*]] = load atomic i32, ptr @c monotonic, align 843; CHECK-NEXT:    [[X_2:%.*]] = load atomic i32, ptr @c seq_cst, align 844; CHECK-NEXT:    ret void45;46  %x.0 = load atomic i32, ptr @c unordered, align 447  %x.1 = load atomic i32, ptr @c monotonic, align 448  %x.2 = load atomic i32, ptr @c seq_cst, align 449  ret void50}51 52define void @store_nonnull() {53; CHECK-LABEL: define void @store_nonnull() {54; CHECK-NEXT:    store atomic i32 0, ptr @c unordered, align 855; CHECK-NEXT:    store atomic i32 0, ptr @c monotonic, align 856; CHECK-NEXT:    store atomic i32 0, ptr @c seq_cst, align 857; CHECK-NEXT:    ret void58;59  store atomic i32 0, ptr @c unordered, align 460  store atomic i32 0, ptr @c monotonic, align 461  store atomic i32 0, ptr @c seq_cst, align 462  ret void63}64 65; ------------------------------------------------------------------------------66; load/store of alloca67; ------------------------------------------------------------------------------68 69define void @load_alloca() {70; CHECK-LABEL: define void @load_alloca() {71; CHECK-NEXT:    [[ALLOCA:%.*]] = alloca i32, align 472; CHECK-NEXT:    [[X_0:%.*]] = load atomic i32, ptr [[ALLOCA]] unordered, align 473; CHECK-NEXT:    [[X_1:%.*]] = load atomic i32, ptr [[ALLOCA]] monotonic, align 474; CHECK-NEXT:    [[X_2:%.*]] = load atomic i32, ptr [[ALLOCA]] seq_cst, align 475; CHECK-NEXT:    ret void76;77  %alloca = alloca i3278  %x.0 = load atomic i32, ptr %alloca unordered, align 179  %x.1 = load atomic i32, ptr %alloca monotonic, align 180  %x.2 = load atomic i32, ptr %alloca seq_cst, align 181  ret void82}83 84define void @store_alloca() {85; CHECK-LABEL: define void @store_alloca() {86; CHECK-NEXT:    [[ALLOCA:%.*]] = alloca i32, align 487; CHECK-NEXT:    store atomic i32 0, ptr [[ALLOCA]] unordered, align 488; CHECK-NEXT:    store atomic i32 0, ptr [[ALLOCA]] monotonic, align 489; CHECK-NEXT:    store atomic i32 0, ptr [[ALLOCA]] seq_cst, align 490; CHECK-NEXT:    ret void91;92  %alloca = alloca i3293  store atomic i32 0, ptr %alloca unordered, align 194  store atomic i32 0, ptr %alloca monotonic, align 195  store atomic i32 0, ptr %alloca seq_cst, align 196  ret void97}98