31 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py2; RUN: opt -passes=gvn -S < %s | FileCheck %s3 4; Check that !nontemporal metadata is preserved only if both original5; instructions are marked.6define i64 @one_nontemporal(ptr %p) {7; CHECK-LABEL: @one_nontemporal(8; CHECK-NEXT: [[A:%.*]] = load i64, ptr [[P:%.*]], align 49; CHECK-NEXT: [[C:%.*]] = add i64 [[A]], [[A]]10; CHECK-NEXT: ret i64 [[C]]11;12 %a = load i64, ptr %p13 %b = load i64, ptr %p, !nontemporal !014 %c = add i64 %a, %b15 ret i64 %c16}17 18define i64 @both_nontemporal(ptr %p) {19; CHECK-LABEL: @both_nontemporal(20; CHECK-NEXT: [[A:%.*]] = load i64, ptr [[P:%.*]], align 4, !nontemporal !021; CHECK-NEXT: [[C:%.*]] = add i64 [[A]], [[A]]22; CHECK-NEXT: ret i64 [[C]]23;24 %a = load i64, ptr %p, !nontemporal !025 %b = load i64, ptr %p, !nontemporal !026 %c = add i64 %a, %b27 ret i64 %c28}29 30!0 = !{i32 1}31