brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.8 KiB · 3a8051a Raw
83 lines · plain
1; RUN: llvm-reduce --abort-on-invalid-reduction --delta-passes=syncscopes --test FileCheck --test-arg --check-prefixes=INTERESTING,CHECK --test-arg %s --test-arg --input-file %s -o %t2; RUN: FileCheck -check-prefixes=RESULT,CHECK %s < %t3 4; CHECK-LABEL: @load_syncscope_keep(5; INTERESTING: syncscope("agent")6; RESULT: %op = load atomic i32, ptr %ptr syncscope("agent") seq_cst, align 47define i32 @load_syncscope_keep(ptr %ptr) {8  %op = load atomic i32, ptr %ptr syncscope("agent") seq_cst, align 49  ret i32 %op10}11 12; CHECK-LABEL: @load_syncscope_drop(13; INTERESTING: load atomic14; RESULT: %op = load atomic i32, ptr %ptr seq_cst, align 415define i32 @load_syncscope_drop(ptr %ptr) {16  %op = load atomic i32, ptr %ptr syncscope("agent") seq_cst, align 417  ret i32 %op18}19 20; CHECK-LABEL: @store_syncscope_keep(21; INTERESTING: syncscope("agent")22; RESULT: store atomic i32 0, ptr %ptr syncscope("agent") seq_cst, align 423define void @store_syncscope_keep(ptr %ptr) {24  store atomic i32 0, ptr %ptr syncscope("agent") seq_cst, align 425  ret void26}27 28; CHECK-LABEL: @store_syncscope_drop(29; INTERESTING: store30; RESULT: store atomic i32 0, ptr %ptr seq_cst, align 431define void @store_syncscope_drop(ptr %ptr) {32  store atomic i32 0, ptr %ptr syncscope("agent") seq_cst, align 433  ret void34}35 36; CHECK-LABEL: @atomicrmw_syncscope_keep(37; INTERESTING: syncscope("agent")38; RESULT: %val = atomicrmw add ptr %ptr, i32 3 syncscope("agent") seq_cst, align 439define i32 @atomicrmw_syncscope_keep(ptr %ptr) {40  %val = atomicrmw add ptr %ptr, i32 3 syncscope("agent") seq_cst, align 441  ret i32 %val42}43 44; CHECK-LABEL: @atomicrmw_syncscope_drop(45; INTERESTING: atomicrmw46; RESULT: %val = atomicrmw add ptr %ptr, i32 3 seq_cst, align 447define i32 @atomicrmw_syncscope_drop(ptr %ptr) {48  %val = atomicrmw add ptr %ptr, i32 3 seq_cst49  ret i32 %val50}51 52; CHECK-LABEL: @cmpxchg_syncscope_keep(53; INTERESTING: syncscope("agent")54; RESULT: %val = cmpxchg ptr %ptr, i32 %old, i32 %in syncscope("agent") seq_cst seq_cst, align 455define { i32, i1 } @cmpxchg_syncscope_keep(ptr %ptr, i32 %old, i32 %in) {56  %val = cmpxchg ptr %ptr, i32 %old, i32 %in syncscope("agent") seq_cst seq_cst57  ret { i32, i1 } %val58}59 60; CHECK-LABEL: @cmpxchg_syncscope_drop(61; INTERESTING: = cmpxchg ptr62; RESULT: %val = cmpxchg ptr %ptr, i32 %old, i32 %in seq_cst seq_cst, align 463define { i32, i1 } @cmpxchg_syncscope_drop(ptr %ptr, i32 %old, i32 %in) {64  %val = cmpxchg ptr %ptr, i32 %old, i32 %in syncscope("agent") seq_cst seq_cst65  ret { i32, i1 } %val66}67 68; CHECK-LABEL: @fence_syncscope_keep(69; INTERESTING: syncscope("agent")70; RESULT: fence syncscope("agent") acquire71define void @fence_syncscope_keep() {72  fence syncscope("agent") acquire73  ret void74}75 76; CHECK-LABEL: @fence_syncscope_drop(77; INTERESTING: fence78; RESULT: fence acquire79define void @fence_syncscope_drop() {80  fence syncscope("agent") acquire81  ret void82}83