; RUN: llc -mtriple=hexagon -O2 < %s | FileCheck %s ; Test coverage for HexagonSplitDoubleRegs: exercise the volatile memory ; operation path and the load/store splitting for 64-bit register operations. ; CHECK-LABEL: test_volatile_load: ; CHECK: memd define i64 @test_volatile_load(ptr %p) { entry: %val = load volatile i64, ptr %p, align 8 ret i64 %val } ; CHECK-LABEL: test_volatile_store: ; CHECK: memd define void @test_volatile_store(ptr %p, i64 %val) { entry: store volatile i64 %val, ptr %p, align 8 ret void } ; Non-volatile 64-bit loads can be split into two 32-bit loads. ; CHECK-LABEL: test_split_load: ; CHECK: memw define i64 @test_split_load(ptr %p) { entry: %val = load i64, ptr %p, align 4 %add = add i64 %val, 1 ret i64 %add }