xref: /llvm-project/llvm/test/CodeGen/RISCV/rvv/combine-store.ll (revision 2967e5f8007d873a3e9d97870d2461d0827a3976)
19ba918ddSPhilip Reames; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
274f985b7SLuke Lau; RUN: llc -mtriple=riscv32 -mattr=+d,+v -verify-machineinstrs < %s | FileCheck --check-prefixes=CHECK,RV32 %s
374f985b7SLuke Lau; RUN: llc -mtriple=riscv64 -mattr=+d,+v -verify-machineinstrs < %s | FileCheck --check-prefixes=CHECK,RV64 %s
49ba918ddSPhilip Reames
59ba918ddSPhilip Reamesdefine void @combine_zero_stores_2xi8(ptr %p) {
69ba918ddSPhilip Reames; CHECK-LABEL: combine_zero_stores_2xi8:
79ba918ddSPhilip Reames; CHECK:       # %bb.0:
89ba918ddSPhilip Reames; CHECK-NEXT:    sh zero, 0(a0)
99ba918ddSPhilip Reames; CHECK-NEXT:    ret
106c59f399SPhilip Reames  store i8 zeroinitializer, ptr %p, align 2
119ba918ddSPhilip Reames  %gep = getelementptr i8, ptr %p, i64 1
129ba918ddSPhilip Reames  store i8 zeroinitializer, ptr %gep
139ba918ddSPhilip Reames  ret void
149ba918ddSPhilip Reames}
159ba918ddSPhilip Reames
166c59f399SPhilip Reamesdefine void @combine_zero_stores_4xi8(ptr %p) {
176c59f399SPhilip Reames; CHECK-LABEL: combine_zero_stores_4xi8:
186c59f399SPhilip Reames; CHECK:       # %bb.0:
196c59f399SPhilip Reames; CHECK-NEXT:    sw zero, 0(a0)
206c59f399SPhilip Reames; CHECK-NEXT:    ret
216c59f399SPhilip Reames  store i8 zeroinitializer, ptr %p, align 4
226c59f399SPhilip Reames  %gep1 = getelementptr i8, ptr %p, i64 1
236c59f399SPhilip Reames  store i8 zeroinitializer, ptr %gep1
246c59f399SPhilip Reames  %gep2 = getelementptr i8, ptr %p, i64 2
256c59f399SPhilip Reames  store i8 zeroinitializer, ptr %gep2
266c59f399SPhilip Reames  %gep3 = getelementptr i8, ptr %p, i64 3
276c59f399SPhilip Reames  store i8 zeroinitializer, ptr %gep3
286c59f399SPhilip Reames  ret void
296c59f399SPhilip Reames}
306c59f399SPhilip Reames
316c59f399SPhilip Reamesdefine void @combine_zero_stores_8xi8(ptr %p) {
326c59f399SPhilip Reames; RV32-LABEL: combine_zero_stores_8xi8:
336c59f399SPhilip Reames; RV32:       # %bb.0:
340457f506SPhilip Reames; RV32-NEXT:    sw zero, 0(a0)
350457f506SPhilip Reames; RV32-NEXT:    sw zero, 4(a0)
366c59f399SPhilip Reames; RV32-NEXT:    ret
376c59f399SPhilip Reames;
386c59f399SPhilip Reames; RV64-LABEL: combine_zero_stores_8xi8:
396c59f399SPhilip Reames; RV64:       # %bb.0:
406c59f399SPhilip Reames; RV64-NEXT:    sd zero, 0(a0)
416c59f399SPhilip Reames; RV64-NEXT:    ret
426c59f399SPhilip Reames  store i8 zeroinitializer, ptr %p, align 8
436c59f399SPhilip Reames  %gep1 = getelementptr i8, ptr %p, i64 1
446c59f399SPhilip Reames  store i8 zeroinitializer, ptr %gep1
456c59f399SPhilip Reames  %gep2 = getelementptr i8, ptr %p, i64 2
466c59f399SPhilip Reames  store i8 zeroinitializer, ptr %gep2
476c59f399SPhilip Reames  %gep3 = getelementptr i8, ptr %p, i64 3
486c59f399SPhilip Reames  store i8 zeroinitializer, ptr %gep3
496c59f399SPhilip Reames  %gep4 = getelementptr i8, ptr %p, i64 4
506c59f399SPhilip Reames  store i8 zeroinitializer, ptr %gep4, align 8
516c59f399SPhilip Reames  %gep5 = getelementptr i8, ptr %p, i64 5
526c59f399SPhilip Reames  store i8 zeroinitializer, ptr %gep5
536c59f399SPhilip Reames  %gep6 = getelementptr i8, ptr %p, i64 6
546c59f399SPhilip Reames  store i8 zeroinitializer, ptr %gep6
556c59f399SPhilip Reames  %gep7 = getelementptr i8, ptr %p, i64 7
566c59f399SPhilip Reames  store i8 zeroinitializer, ptr %gep7
576c59f399SPhilip Reames  ret void
586c59f399SPhilip Reames}
596c59f399SPhilip Reames
609ba918ddSPhilip Reamesdefine void @combine_zero_stores_2xi16(ptr %p) {
619ba918ddSPhilip Reames; CHECK-LABEL: combine_zero_stores_2xi16:
629ba918ddSPhilip Reames; CHECK:       # %bb.0:
639ba918ddSPhilip Reames; CHECK-NEXT:    sw zero, 0(a0)
649ba918ddSPhilip Reames; CHECK-NEXT:    ret
659ba918ddSPhilip Reames  store i16 zeroinitializer, ptr %p, align 4
669ba918ddSPhilip Reames  %gep = getelementptr i8, ptr %p, i64 2
679ba918ddSPhilip Reames  store i16 zeroinitializer, ptr %gep
689ba918ddSPhilip Reames  ret void
699ba918ddSPhilip Reames}
709ba918ddSPhilip Reames
716c59f399SPhilip Reamesdefine void @combine_zero_stores_4xi16(ptr %p) {
726c59f399SPhilip Reames; RV32-LABEL: combine_zero_stores_4xi16:
736c59f399SPhilip Reames; RV32:       # %bb.0:
740457f506SPhilip Reames; RV32-NEXT:    sw zero, 0(a0)
750457f506SPhilip Reames; RV32-NEXT:    sw zero, 4(a0)
766c59f399SPhilip Reames; RV32-NEXT:    ret
776c59f399SPhilip Reames;
786c59f399SPhilip Reames; RV64-LABEL: combine_zero_stores_4xi16:
796c59f399SPhilip Reames; RV64:       # %bb.0:
806c59f399SPhilip Reames; RV64-NEXT:    sd zero, 0(a0)
816c59f399SPhilip Reames; RV64-NEXT:    ret
826c59f399SPhilip Reames  store i16 zeroinitializer, ptr %p, align 8
836c59f399SPhilip Reames  %gep1 = getelementptr i16, ptr %p, i64 1
846c59f399SPhilip Reames  store i16 zeroinitializer, ptr %gep1
856c59f399SPhilip Reames  %gep2 = getelementptr i16, ptr %p, i64 2
866c59f399SPhilip Reames  store i16 zeroinitializer, ptr %gep2, align 4
876c59f399SPhilip Reames  %gep3 = getelementptr i16, ptr %p, i64 3
886c59f399SPhilip Reames  store i16 zeroinitializer, ptr %gep3
896c59f399SPhilip Reames  ret void
906c59f399SPhilip Reames}
916c59f399SPhilip Reames
926c59f399SPhilip Reamesdefine void @combine_zero_stores_8xi16(ptr %p) {
936c59f399SPhilip Reames; RV32-LABEL: combine_zero_stores_8xi16:
946c59f399SPhilip Reames; RV32:       # %bb.0:
956c59f399SPhilip Reames; RV32-NEXT:    sw zero, 0(a0)
966c59f399SPhilip Reames; RV32-NEXT:    sh zero, 4(a0)
976c59f399SPhilip Reames; RV32-NEXT:    sh zero, 6(a0)
986c59f399SPhilip Reames; RV32-NEXT:    sw zero, 8(a0)
996c59f399SPhilip Reames; RV32-NEXT:    sh zero, 12(a0)
1006c59f399SPhilip Reames; RV32-NEXT:    sh zero, 14(a0)
1016c59f399SPhilip Reames; RV32-NEXT:    ret
1026c59f399SPhilip Reames;
1036c59f399SPhilip Reames; RV64-LABEL: combine_zero_stores_8xi16:
1046c59f399SPhilip Reames; RV64:       # %bb.0:
1050457f506SPhilip Reames; RV64-NEXT:    sd zero, 0(a0)
1060457f506SPhilip Reames; RV64-NEXT:    sd zero, 8(a0)
1076c59f399SPhilip Reames; RV64-NEXT:    ret
1086c59f399SPhilip Reames  store i16 zeroinitializer, ptr %p, align 16
1096c59f399SPhilip Reames  %gep1 = getelementptr i16, ptr %p, i64 1
1106c59f399SPhilip Reames  store i16 zeroinitializer, ptr %gep1
1116c59f399SPhilip Reames  %gep2 = getelementptr i16, ptr %p, i64 2
1126c59f399SPhilip Reames  store i16 zeroinitializer, ptr %gep2
1136c59f399SPhilip Reames  %gep3 = getelementptr i16, ptr %p, i64 3
1146c59f399SPhilip Reames  store i16 zeroinitializer, ptr %gep3
1156c59f399SPhilip Reames  %gep4 = getelementptr i16, ptr %p, i64 4
1166c59f399SPhilip Reames  store i16 zeroinitializer, ptr %gep4, align 8
1176c59f399SPhilip Reames  %gep5 = getelementptr i16, ptr %p, i64 5
1186c59f399SPhilip Reames  store i16 zeroinitializer, ptr %gep5
1196c59f399SPhilip Reames  %gep6 = getelementptr i16, ptr %p, i64 6
1206c59f399SPhilip Reames  store i16 zeroinitializer, ptr %gep6
1216c59f399SPhilip Reames  %gep7 = getelementptr i16, ptr %p, i64 7
1226c59f399SPhilip Reames  store i16 zeroinitializer, ptr %gep7
1236c59f399SPhilip Reames  ret void
1246c59f399SPhilip Reames}
1256c59f399SPhilip Reames
1269ba918ddSPhilip Reamesdefine void @combine_zero_stores_2xi32(ptr %p) {
1279ba918ddSPhilip Reames; RV32-LABEL: combine_zero_stores_2xi32:
1289ba918ddSPhilip Reames; RV32:       # %bb.0:
1290457f506SPhilip Reames; RV32-NEXT:    sw zero, 0(a0)
1300457f506SPhilip Reames; RV32-NEXT:    sw zero, 4(a0)
1319ba918ddSPhilip Reames; RV32-NEXT:    ret
1329ba918ddSPhilip Reames;
1339ba918ddSPhilip Reames; RV64-LABEL: combine_zero_stores_2xi32:
1349ba918ddSPhilip Reames; RV64:       # %bb.0:
1359ba918ddSPhilip Reames; RV64-NEXT:    sd zero, 0(a0)
1369ba918ddSPhilip Reames; RV64-NEXT:    ret
1379ba918ddSPhilip Reames  store i32 zeroinitializer, ptr %p, align 8
1389ba918ddSPhilip Reames  %gep = getelementptr i8, ptr %p, i64 4
1399ba918ddSPhilip Reames  store i32 zeroinitializer, ptr %gep
1409ba918ddSPhilip Reames  ret void
1419ba918ddSPhilip Reames}
1429ba918ddSPhilip Reames
1436c59f399SPhilip Reamesdefine void @combine_zero_stores_4xi32(ptr %p) {
1446c59f399SPhilip Reames; RV32-LABEL: combine_zero_stores_4xi32:
1456c59f399SPhilip Reames; RV32:       # %bb.0:
1466c59f399SPhilip Reames; RV32-NEXT:    vsetivli zero, 4, e32, m1, ta, ma
1476c59f399SPhilip Reames; RV32-NEXT:    vmv.v.i v8, 0
1486c59f399SPhilip Reames; RV32-NEXT:    vse32.v v8, (a0)
1496c59f399SPhilip Reames; RV32-NEXT:    ret
1506c59f399SPhilip Reames;
1516c59f399SPhilip Reames; RV64-LABEL: combine_zero_stores_4xi32:
1526c59f399SPhilip Reames; RV64:       # %bb.0:
1530457f506SPhilip Reames; RV64-NEXT:    sd zero, 0(a0)
1540457f506SPhilip Reames; RV64-NEXT:    sd zero, 8(a0)
1556c59f399SPhilip Reames; RV64-NEXT:    ret
1566c59f399SPhilip Reames  store i32 zeroinitializer, ptr %p, align 16
1576c59f399SPhilip Reames  %gep1 = getelementptr i32, ptr %p, i64 1
1586c59f399SPhilip Reames  store i32 zeroinitializer, ptr %gep1
1596c59f399SPhilip Reames  %gep2 = getelementptr i32, ptr %p, i64 2
1606c59f399SPhilip Reames  store i32 zeroinitializer, ptr %gep2, align 8
1616c59f399SPhilip Reames  %gep3 = getelementptr i32, ptr %p, i64 3
1626c59f399SPhilip Reames  store i32 zeroinitializer, ptr %gep3
1636c59f399SPhilip Reames  ret void
1646c59f399SPhilip Reames}
1656c59f399SPhilip Reames
1666c59f399SPhilip Reamesdefine void @combine_zero_stores_8xi32(ptr %p) {
1676c59f399SPhilip Reames; RV32-LABEL: combine_zero_stores_8xi32:
1686c59f399SPhilip Reames; RV32:       # %bb.0:
1696c59f399SPhilip Reames; RV32-NEXT:    vsetivli zero, 8, e32, m2, ta, ma
1706c59f399SPhilip Reames; RV32-NEXT:    vmv.v.i v8, 0
1716c59f399SPhilip Reames; RV32-NEXT:    vse32.v v8, (a0)
1726c59f399SPhilip Reames; RV32-NEXT:    ret
1736c59f399SPhilip Reames;
1746c59f399SPhilip Reames; RV64-LABEL: combine_zero_stores_8xi32:
1756c59f399SPhilip Reames; RV64:       # %bb.0:
1766c59f399SPhilip Reames; RV64-NEXT:    vsetivli zero, 4, e64, m2, ta, ma
1776c59f399SPhilip Reames; RV64-NEXT:    vmv.v.i v8, 0
1786c59f399SPhilip Reames; RV64-NEXT:    vse64.v v8, (a0)
1796c59f399SPhilip Reames; RV64-NEXT:    ret
1806c59f399SPhilip Reames  store i32 zeroinitializer, ptr %p, align 32
1816c59f399SPhilip Reames  %gep1 = getelementptr i32, ptr %p, i64 1
1826c59f399SPhilip Reames  store i32 zeroinitializer, ptr %gep1
1836c59f399SPhilip Reames  %gep2 = getelementptr i32, ptr %p, i64 2
1846c59f399SPhilip Reames  store i32 zeroinitializer, ptr %gep2, align 8
1856c59f399SPhilip Reames  %gep3 = getelementptr i32, ptr %p, i64 3
1866c59f399SPhilip Reames  store i32 zeroinitializer, ptr %gep3
1876c59f399SPhilip Reames  %gep4 = getelementptr i32, ptr %p, i64 4
1886c59f399SPhilip Reames  store i32 zeroinitializer, ptr %gep4, align 8
1896c59f399SPhilip Reames  %gep5 = getelementptr i32, ptr %p, i64 5
1906c59f399SPhilip Reames  store i32 zeroinitializer, ptr %gep5
1916c59f399SPhilip Reames  %gep6 = getelementptr i32, ptr %p, i64 6
1926c59f399SPhilip Reames  store i32 zeroinitializer, ptr %gep6, align 8
1936c59f399SPhilip Reames  %gep7 = getelementptr i32, ptr %p, i64 7
1946c59f399SPhilip Reames  store i32 zeroinitializer, ptr %gep7
1956c59f399SPhilip Reames  ret void
1966c59f399SPhilip Reames}
1976c59f399SPhilip Reames
1989ba918ddSPhilip Reamesdefine void @combine_zero_stores_2xi32_unaligned(ptr %p) {
1990457f506SPhilip Reames; CHECK-LABEL: combine_zero_stores_2xi32_unaligned:
2000457f506SPhilip Reames; CHECK:       # %bb.0:
2010457f506SPhilip Reames; CHECK-NEXT:    sw zero, 0(a0)
2020457f506SPhilip Reames; CHECK-NEXT:    sw zero, 4(a0)
2030457f506SPhilip Reames; CHECK-NEXT:    ret
2049ba918ddSPhilip Reames  store i32 zeroinitializer, ptr %p
2059ba918ddSPhilip Reames  %gep = getelementptr i8, ptr %p, i64 4
2069ba918ddSPhilip Reames  store i32 zeroinitializer, ptr %gep
2079ba918ddSPhilip Reames  ret void
2089ba918ddSPhilip Reames}
2099ba918ddSPhilip Reames
2109ba918ddSPhilip Reamesdefine void @combine_zero_stores_2xi64(ptr %p) {
2119ba918ddSPhilip Reames; RV32-LABEL: combine_zero_stores_2xi64:
2129ba918ddSPhilip Reames; RV32:       # %bb.0:
2139ba918ddSPhilip Reames; RV32-NEXT:    sw zero, 0(a0)
214*2967e5f8SAlex Bradbury; RV32-NEXT:    sw zero, 4(a0)
2159ba918ddSPhilip Reames; RV32-NEXT:    sw zero, 8(a0)
216*2967e5f8SAlex Bradbury; RV32-NEXT:    sw zero, 12(a0)
2179ba918ddSPhilip Reames; RV32-NEXT:    ret
2189ba918ddSPhilip Reames;
2199ba918ddSPhilip Reames; RV64-LABEL: combine_zero_stores_2xi64:
2209ba918ddSPhilip Reames; RV64:       # %bb.0:
2210457f506SPhilip Reames; RV64-NEXT:    sd zero, 0(a0)
2220457f506SPhilip Reames; RV64-NEXT:    sd zero, 8(a0)
2239ba918ddSPhilip Reames; RV64-NEXT:    ret
2249ba918ddSPhilip Reames  store i64 zeroinitializer, ptr %p
2259ba918ddSPhilip Reames  %gep = getelementptr i8, ptr %p, i64 8
2269ba918ddSPhilip Reames  store i64 zeroinitializer, ptr %gep
2279ba918ddSPhilip Reames  ret void
2289ba918ddSPhilip Reames}
2299ba918ddSPhilip Reames
2309ba918ddSPhilip Reamesdefine void @combine_fp_zero_stores_crash(ptr %ptr)  {
2319ba918ddSPhilip Reames; CHECK-LABEL: combine_fp_zero_stores_crash:
2329ba918ddSPhilip Reames; CHECK:       # %bb.0:
2330457f506SPhilip Reames; CHECK-NEXT:    sw zero, 4(a0)
2340457f506SPhilip Reames; CHECK-NEXT:    sw zero, 8(a0)
2359ba918ddSPhilip Reames; CHECK-NEXT:    ret
2369ba918ddSPhilip Reames  %addr1 = getelementptr float, ptr %ptr, i64 1
2379ba918ddSPhilip Reames  %addr2 = getelementptr float, ptr %ptr, i64 2
2389ba918ddSPhilip Reames  store float 0.000000e+00, ptr %addr1, align 4
2399ba918ddSPhilip Reames  store float 0.000000e+00, ptr %addr2, align 4
2409ba918ddSPhilip Reames  ret void
2419ba918ddSPhilip Reames}
2429ba918ddSPhilip Reames
2439ba918ddSPhilip Reamesdefine void @combine_allones_stores_2xi8(ptr %p) {
2449ba918ddSPhilip Reames; CHECK-LABEL: combine_allones_stores_2xi8:
2459ba918ddSPhilip Reames; CHECK:       # %bb.0:
2469ba918ddSPhilip Reames; CHECK-NEXT:    li a1, -1
2479ba918ddSPhilip Reames; CHECK-NEXT:    sh a1, 0(a0)
2489ba918ddSPhilip Reames; CHECK-NEXT:    ret
2499ba918ddSPhilip Reames  store i8 -1, ptr %p, align 4
2509ba918ddSPhilip Reames  %gep = getelementptr i8, ptr %p, i64 1
2519ba918ddSPhilip Reames  store i8 -1, ptr %gep
2529ba918ddSPhilip Reames  ret void
2539ba918ddSPhilip Reames}
2549ba918ddSPhilip Reames
2559ba918ddSPhilip Reamesdefine void @combine_allones_stores_2xi16(ptr %p) {
2569ba918ddSPhilip Reames; CHECK-LABEL: combine_allones_stores_2xi16:
2579ba918ddSPhilip Reames; CHECK:       # %bb.0:
2589ba918ddSPhilip Reames; CHECK-NEXT:    li a1, -1
2599ba918ddSPhilip Reames; CHECK-NEXT:    sw a1, 0(a0)
2609ba918ddSPhilip Reames; CHECK-NEXT:    ret
2619ba918ddSPhilip Reames  store i16 -1, ptr %p, align 4
2629ba918ddSPhilip Reames  %gep = getelementptr i8, ptr %p, i64 2
2639ba918ddSPhilip Reames  store i16 -1, ptr %gep
2649ba918ddSPhilip Reames  ret void
2659ba918ddSPhilip Reames}
2669ba918ddSPhilip Reames
2679ba918ddSPhilip Reamesdefine void @combine_allones_stores_2xi32(ptr %p) {
2689ba918ddSPhilip Reames; RV32-LABEL: combine_allones_stores_2xi32:
2699ba918ddSPhilip Reames; RV32:       # %bb.0:
2709ba918ddSPhilip Reames; RV32-NEXT:    li a1, -1
2719ba918ddSPhilip Reames; RV32-NEXT:    sw a1, 0(a0)
2729ba918ddSPhilip Reames; RV32-NEXT:    sw a1, 4(a0)
2739ba918ddSPhilip Reames; RV32-NEXT:    ret
2749ba918ddSPhilip Reames;
2759ba918ddSPhilip Reames; RV64-LABEL: combine_allones_stores_2xi32:
2769ba918ddSPhilip Reames; RV64:       # %bb.0:
2779ba918ddSPhilip Reames; RV64-NEXT:    li a1, -1
2789ba918ddSPhilip Reames; RV64-NEXT:    sd a1, 0(a0)
2799ba918ddSPhilip Reames; RV64-NEXT:    ret
2809ba918ddSPhilip Reames  store i32 -1, ptr %p, align 8
2819ba918ddSPhilip Reames  %gep = getelementptr i8, ptr %p, i64 4
2829ba918ddSPhilip Reames  store i32 -1, ptr %gep
2839ba918ddSPhilip Reames  ret void
2849ba918ddSPhilip Reames}
2859ba918ddSPhilip Reames
2869ba918ddSPhilip Reamesdefine void @combine_allones_stores_2xi32_unaligned(ptr %p) {
2879ba918ddSPhilip Reames; CHECK-LABEL: combine_allones_stores_2xi32_unaligned:
2889ba918ddSPhilip Reames; CHECK:       # %bb.0:
2899ba918ddSPhilip Reames; CHECK-NEXT:    li a1, -1
2909ba918ddSPhilip Reames; CHECK-NEXT:    sw a1, 0(a0)
2919ba918ddSPhilip Reames; CHECK-NEXT:    sw a1, 4(a0)
2929ba918ddSPhilip Reames; CHECK-NEXT:    ret
2939ba918ddSPhilip Reames  store i32 -1, ptr %p
2949ba918ddSPhilip Reames  %gep = getelementptr i8, ptr %p, i64 4
2959ba918ddSPhilip Reames  store i32 -1, ptr %gep
2969ba918ddSPhilip Reames  ret void
2979ba918ddSPhilip Reames}
2989ba918ddSPhilip Reames
2999ba918ddSPhilip Reamesdefine void @combine_allones_stores_2xi64(ptr %p) {
3009ba918ddSPhilip Reames; RV32-LABEL: combine_allones_stores_2xi64:
3019ba918ddSPhilip Reames; RV32:       # %bb.0:
3029ba918ddSPhilip Reames; RV32-NEXT:    li a1, -1
3039ba918ddSPhilip Reames; RV32-NEXT:    sw a1, 0(a0)
304*2967e5f8SAlex Bradbury; RV32-NEXT:    sw a1, 4(a0)
3059ba918ddSPhilip Reames; RV32-NEXT:    sw a1, 8(a0)
306*2967e5f8SAlex Bradbury; RV32-NEXT:    sw a1, 12(a0)
3079ba918ddSPhilip Reames; RV32-NEXT:    ret
3089ba918ddSPhilip Reames;
3099ba918ddSPhilip Reames; RV64-LABEL: combine_allones_stores_2xi64:
3109ba918ddSPhilip Reames; RV64:       # %bb.0:
3119ba918ddSPhilip Reames; RV64-NEXT:    li a1, -1
3129ba918ddSPhilip Reames; RV64-NEXT:    sd a1, 0(a0)
3139ba918ddSPhilip Reames; RV64-NEXT:    sd a1, 8(a0)
3149ba918ddSPhilip Reames; RV64-NEXT:    ret
3159ba918ddSPhilip Reames  store i64 -1, ptr %p
3169ba918ddSPhilip Reames  %gep = getelementptr i8, ptr %p, i64 8
3179ba918ddSPhilip Reames  store i64 -1, ptr %gep
3189ba918ddSPhilip Reames  ret void
3199ba918ddSPhilip Reames}
320