From 739424ab28b547f4524b1e42fb59aa3c3528e69b Mon Sep 17 00:00:00 2001 From: Philip Reames Date: Fri, 1 Mar 2019 18:24:05 +0000 Subject: [PATCH] [Tests] More missing atomicrmw combines git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@355215 91177308-0d34-0410-b5e6-96231b3b80d8 --- test/Transforms/InstCombine/atomicrmw.ll | 25 ++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/test/Transforms/InstCombine/atomicrmw.ll b/test/Transforms/InstCombine/atomicrmw.ll index 0e6c2bb7b45..e43d4a02c2b 100644 --- a/test/Transforms/InstCombine/atomicrmw.ll +++ b/test/Transforms/InstCombine/atomicrmw.ll @@ -229,6 +229,14 @@ define double @sat_fsub_nan(double* %addr) { ret double %res } +; CHECK-LABEL: sat_fsub_nan_unused +; CHECK-NEXT: atomicrmw fsub double* %addr, double 0x7FF00000FFFFFFFF monotonic +; CHECK-NEXT: ret void +define void @sat_fsub_nan_unused(double* %addr) { + atomicrmw fsub double* %addr, double 0x7FF00000FFFFFFFF monotonic + ret void +} + ; CHECK-LABEL: xchg_unused_monotonic ; CHECK-NEXT: store atomic i32 0, i32* %addr monotonic, align 4 ; CHECK-NEXT: ret void @@ -270,4 +278,21 @@ define void @sat_or_allones_unused(i32* %addr) { } +; CHECK-LABEL: undef_operand_unused +; CHECK-NEXT: atomicrmw or i32* %addr, i32 undef monotonic +; CHECK-NEXT: ret void +define void @undef_operand_unused(i32* %addr) { + atomicrmw or i32* %addr, i32 undef monotonic + ret void +} + +; CHECK-LABEL: undef_operand_used +; CHECK-NEXT: %res = atomicrmw or i32* %addr, i32 undef monotonic +; CHECK-NEXT: ret i32 %res +define i32 @undef_operand_used(i32* %addr) { + %res = atomicrmw or i32* %addr, i32 undef monotonic + ret i32 %res +} + + -- 2.50.1