brintos

brintos / llvm-project-archived public Read only

0
0
Text · 9.8 KiB · 8e1ae1d Raw
290 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --filter-out "\b(sp)\b" --filter "^\s*(ld[^r]|st|swp|cas|bl|add|and|eor|orn|orr|sub|mvn|sxt|cmp|ccmp|csel|dmb)"2; The base test file was generated by ./llvm/test/CodeGen/AArch64/Atomics/generate-tests.py3; RUN: llc %s -o - -verify-machineinstrs -mtriple=aarch64 -mattr=+lse2,+rcpc3 -O0 | FileCheck %s --check-prefixes=CHECK,-O04; RUN: llc %s -o - -verify-machineinstrs -mtriple=aarch64 -mattr=+lse2,+rcpc3 -O1 | FileCheck %s --check-prefixes=CHECK,-O15 6define dso_local void @store_atomic_i8_aligned_unordered(i8 %value, ptr %ptr) {7; CHECK-LABEL: store_atomic_i8_aligned_unordered:8; CHECK:    strb w0, [x1]9    store atomic i8 %value, ptr %ptr unordered, align 110    ret void11}12 13define dso_local void @store_atomic_i8_aligned_monotonic(i8 %value, ptr %ptr) {14; CHECK-LABEL: store_atomic_i8_aligned_monotonic:15; CHECK:    strb w0, [x1]16    store atomic i8 %value, ptr %ptr monotonic, align 117    ret void18}19 20define dso_local void @store_atomic_i8_aligned_release(i8 %value, ptr %ptr) {21; CHECK-LABEL: store_atomic_i8_aligned_release:22; CHECK:    stlrb w0, [x1]23    store atomic i8 %value, ptr %ptr release, align 124    ret void25}26 27define dso_local void @store_atomic_i8_aligned_seq_cst(i8 %value, ptr %ptr) {28; CHECK-LABEL: store_atomic_i8_aligned_seq_cst:29; CHECK:    stlrb w0, [x1]30    store atomic i8 %value, ptr %ptr seq_cst, align 131    ret void32}33 34define dso_local void @store_atomic_i16_aligned_unordered(i16 %value, ptr %ptr) {35; CHECK-LABEL: store_atomic_i16_aligned_unordered:36; CHECK:    strh w0, [x1]37    store atomic i16 %value, ptr %ptr unordered, align 238    ret void39}40 41define dso_local void @store_atomic_i16_aligned_monotonic(i16 %value, ptr %ptr) {42; CHECK-LABEL: store_atomic_i16_aligned_monotonic:43; CHECK:    strh w0, [x1]44    store atomic i16 %value, ptr %ptr monotonic, align 245    ret void46}47 48define dso_local void @store_atomic_i16_aligned_release(i16 %value, ptr %ptr) {49; CHECK-LABEL: store_atomic_i16_aligned_release:50; CHECK:    stlrh w0, [x1]51    store atomic i16 %value, ptr %ptr release, align 252    ret void53}54 55define dso_local void @store_atomic_i16_aligned_seq_cst(i16 %value, ptr %ptr) {56; CHECK-LABEL: store_atomic_i16_aligned_seq_cst:57; CHECK:    stlrh w0, [x1]58    store atomic i16 %value, ptr %ptr seq_cst, align 259    ret void60}61 62define dso_local void @store_atomic_i32_aligned_unordered(i32 %value, ptr %ptr) {63; CHECK-LABEL: store_atomic_i32_aligned_unordered:64; CHECK:    str w0, [x1]65    store atomic i32 %value, ptr %ptr unordered, align 466    ret void67}68 69define dso_local void @store_atomic_i32_aligned_monotonic(i32 %value, ptr %ptr) {70; CHECK-LABEL: store_atomic_i32_aligned_monotonic:71; CHECK:    str w0, [x1]72    store atomic i32 %value, ptr %ptr monotonic, align 473    ret void74}75 76define dso_local void @store_atomic_i32_aligned_release(i32 %value, ptr %ptr) {77; CHECK-LABEL: store_atomic_i32_aligned_release:78; CHECK:    stlr w0, [x1]79    store atomic i32 %value, ptr %ptr release, align 480    ret void81}82 83define dso_local void @store_atomic_i32_aligned_seq_cst(i32 %value, ptr %ptr) {84; CHECK-LABEL: store_atomic_i32_aligned_seq_cst:85; CHECK:    stlr w0, [x1]86    store atomic i32 %value, ptr %ptr seq_cst, align 487    ret void88}89 90define dso_local void @store_atomic_i64_aligned_unordered(i64 %value, ptr %ptr) {91; CHECK-LABEL: store_atomic_i64_aligned_unordered:92; CHECK:    str x0, [x1]93    store atomic i64 %value, ptr %ptr unordered, align 894    ret void95}96 97define dso_local void @store_atomic_i64_aligned_monotonic(i64 %value, ptr %ptr) {98; CHECK-LABEL: store_atomic_i64_aligned_monotonic:99; CHECK:    str x0, [x1]100    store atomic i64 %value, ptr %ptr monotonic, align 8101    ret void102}103 104define dso_local void @store_atomic_i64_aligned_release(i64 %value, ptr %ptr) {105; CHECK-LABEL: store_atomic_i64_aligned_release:106; CHECK:    stlr x0, [x1]107    store atomic i64 %value, ptr %ptr release, align 8108    ret void109}110 111define dso_local void @store_atomic_i64_aligned_seq_cst(i64 %value, ptr %ptr) {112; CHECK-LABEL: store_atomic_i64_aligned_seq_cst:113; CHECK:    stlr x0, [x1]114    store atomic i64 %value, ptr %ptr seq_cst, align 8115    ret void116}117 118define dso_local void @store_atomic_i128_aligned_unordered(i128 %value, ptr %ptr) {119; CHECK-LABEL: store_atomic_i128_aligned_unordered:120; CHECK:    stp x0, x1, [x2]121    store atomic i128 %value, ptr %ptr unordered, align 16122    ret void123}124 125define dso_local void @store_atomic_i128_aligned_monotonic(i128 %value, ptr %ptr) {126; CHECK-LABEL: store_atomic_i128_aligned_monotonic:127; CHECK:    stp x0, x1, [x2]128    store atomic i128 %value, ptr %ptr monotonic, align 16129    ret void130}131 132define dso_local void @store_atomic_i128_aligned_release(i128 %value, ptr %ptr) {133; CHECK-LABEL: store_atomic_i128_aligned_release:134; CHECK:    stilp x0, x1, [x2]135    store atomic i128 %value, ptr %ptr release, align 16136    ret void137}138 139define dso_local void @store_atomic_i128_aligned_seq_cst(i128 %value, ptr %ptr) {140; CHECK-LABEL: store_atomic_i128_aligned_seq_cst:141; CHECK:    dmb ish142; CHECK:    stp x0, x1, [x2]143; CHECK:    dmb ish144    store atomic i128 %value, ptr %ptr seq_cst, align 16145    ret void146}147 148define dso_local void @store_atomic_i8_unaligned_unordered(i8 %value, ptr %ptr) {149; CHECK-LABEL: store_atomic_i8_unaligned_unordered:150; CHECK:    strb w0, [x1]151    store atomic i8 %value, ptr %ptr unordered, align 1152    ret void153}154 155define dso_local void @store_atomic_i8_unaligned_monotonic(i8 %value, ptr %ptr) {156; CHECK-LABEL: store_atomic_i8_unaligned_monotonic:157; CHECK:    strb w0, [x1]158    store atomic i8 %value, ptr %ptr monotonic, align 1159    ret void160}161 162define dso_local void @store_atomic_i8_unaligned_release(i8 %value, ptr %ptr) {163; CHECK-LABEL: store_atomic_i8_unaligned_release:164; CHECK:    stlrb w0, [x1]165    store atomic i8 %value, ptr %ptr release, align 1166    ret void167}168 169define dso_local void @store_atomic_i8_unaligned_seq_cst(i8 %value, ptr %ptr) {170; CHECK-LABEL: store_atomic_i8_unaligned_seq_cst:171; CHECK:    stlrb w0, [x1]172    store atomic i8 %value, ptr %ptr seq_cst, align 1173    ret void174}175 176define dso_local void @store_atomic_i16_unaligned_unordered(i16 %value, ptr %ptr) {177; CHECK-LABEL: store_atomic_i16_unaligned_unordered:178; CHECK:    bl __atomic_store179    store atomic i16 %value, ptr %ptr unordered, align 1180    ret void181}182 183define dso_local void @store_atomic_i16_unaligned_monotonic(i16 %value, ptr %ptr) {184; CHECK-LABEL: store_atomic_i16_unaligned_monotonic:185; CHECK:    bl __atomic_store186    store atomic i16 %value, ptr %ptr monotonic, align 1187    ret void188}189 190define dso_local void @store_atomic_i16_unaligned_release(i16 %value, ptr %ptr) {191; CHECK-LABEL: store_atomic_i16_unaligned_release:192; CHECK:    bl __atomic_store193    store atomic i16 %value, ptr %ptr release, align 1194    ret void195}196 197define dso_local void @store_atomic_i16_unaligned_seq_cst(i16 %value, ptr %ptr) {198; CHECK-LABEL: store_atomic_i16_unaligned_seq_cst:199; CHECK:    bl __atomic_store200    store atomic i16 %value, ptr %ptr seq_cst, align 1201    ret void202}203 204define dso_local void @store_atomic_i32_unaligned_unordered(i32 %value, ptr %ptr) {205; CHECK-LABEL: store_atomic_i32_unaligned_unordered:206; CHECK:    bl __atomic_store207    store atomic i32 %value, ptr %ptr unordered, align 1208    ret void209}210 211define dso_local void @store_atomic_i32_unaligned_monotonic(i32 %value, ptr %ptr) {212; CHECK-LABEL: store_atomic_i32_unaligned_monotonic:213; CHECK:    bl __atomic_store214    store atomic i32 %value, ptr %ptr monotonic, align 1215    ret void216}217 218define dso_local void @store_atomic_i32_unaligned_release(i32 %value, ptr %ptr) {219; CHECK-LABEL: store_atomic_i32_unaligned_release:220; CHECK:    bl __atomic_store221    store atomic i32 %value, ptr %ptr release, align 1222    ret void223}224 225define dso_local void @store_atomic_i32_unaligned_seq_cst(i32 %value, ptr %ptr) {226; CHECK-LABEL: store_atomic_i32_unaligned_seq_cst:227; CHECK:    bl __atomic_store228    store atomic i32 %value, ptr %ptr seq_cst, align 1229    ret void230}231 232define dso_local void @store_atomic_i64_unaligned_unordered(i64 %value, ptr %ptr) {233; CHECK-LABEL: store_atomic_i64_unaligned_unordered:234; CHECK:    bl __atomic_store235    store atomic i64 %value, ptr %ptr unordered, align 1236    ret void237}238 239define dso_local void @store_atomic_i64_unaligned_monotonic(i64 %value, ptr %ptr) {240; CHECK-LABEL: store_atomic_i64_unaligned_monotonic:241; CHECK:    bl __atomic_store242    store atomic i64 %value, ptr %ptr monotonic, align 1243    ret void244}245 246define dso_local void @store_atomic_i64_unaligned_release(i64 %value, ptr %ptr) {247; CHECK-LABEL: store_atomic_i64_unaligned_release:248; CHECK:    bl __atomic_store249    store atomic i64 %value, ptr %ptr release, align 1250    ret void251}252 253define dso_local void @store_atomic_i64_unaligned_seq_cst(i64 %value, ptr %ptr) {254; CHECK-LABEL: store_atomic_i64_unaligned_seq_cst:255; CHECK:    bl __atomic_store256    store atomic i64 %value, ptr %ptr seq_cst, align 1257    ret void258}259 260define dso_local void @store_atomic_i128_unaligned_unordered(i128 %value, ptr %ptr) {261; CHECK-LABEL: store_atomic_i128_unaligned_unordered:262; CHECK:    bl __atomic_store263    store atomic i128 %value, ptr %ptr unordered, align 1264    ret void265}266 267define dso_local void @store_atomic_i128_unaligned_monotonic(i128 %value, ptr %ptr) {268; CHECK-LABEL: store_atomic_i128_unaligned_monotonic:269; CHECK:    bl __atomic_store270    store atomic i128 %value, ptr %ptr monotonic, align 1271    ret void272}273 274define dso_local void @store_atomic_i128_unaligned_release(i128 %value, ptr %ptr) {275; CHECK-LABEL: store_atomic_i128_unaligned_release:276; CHECK:    bl __atomic_store277    store atomic i128 %value, ptr %ptr release, align 1278    ret void279}280 281define dso_local void @store_atomic_i128_unaligned_seq_cst(i128 %value, ptr %ptr) {282; CHECK-LABEL: store_atomic_i128_unaligned_seq_cst:283; CHECK:    bl __atomic_store284    store atomic i128 %value, ptr %ptr seq_cst, align 1285    ret void286}287;; NOTE: These prefixes are unused and the list is autogenerated. Do not add tests below this line:288; -O0: {{.*}}289; -O1: {{.*}}290