brintos

brintos / llvm-project-archived public Read only

0
0
Text · 906 B · aad1a9e Raw
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