xref: /llvm-project/llvm/test/CodeGen/RISCV/xcvalu.ll (revision 00128a20eec27246719d73ba427bf821883b00b4)
156f0ecd6Srealqhc; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
256f0ecd6Srealqhc; RUN: llc -O0 -mtriple=riscv32 -mattr=+m -mattr=+xcvalu -verify-machineinstrs < %s \
356f0ecd6Srealqhc; RUN:   | FileCheck %s
456f0ecd6Srealqhc
556f0ecd6Srealqhcdeclare i32 @llvm.abs.i32(i32, i1)
656f0ecd6Srealqhcdeclare i32 @llvm.smin.i32(i32, i32)
756f0ecd6Srealqhcdeclare i32 @llvm.smax.i32(i32, i32)
856f0ecd6Srealqhcdeclare i32 @llvm.umin.i32(i32, i32)
956f0ecd6Srealqhcdeclare i32 @llvm.umax.i32(i32, i32)
1056f0ecd6Srealqhc
1156f0ecd6Srealqhcdefine i32 @abs(i32 %a) {
1256f0ecd6Srealqhc; CHECK-LABEL: abs:
1356f0ecd6Srealqhc; CHECK:       # %bb.0:
1456f0ecd6Srealqhc; CHECK-NEXT:    cv.abs a0, a0
1556f0ecd6Srealqhc; CHECK-NEXT:    ret
1656f0ecd6Srealqhc  %1 = call i32 @llvm.abs.i32(i32 %a, i1 false)
1756f0ecd6Srealqhc  ret i32 %1
1856f0ecd6Srealqhc}
1956f0ecd6Srealqhc
2056f0ecd6Srealqhcdefine i1 @slet(i32 %a, i32 %b) {
2156f0ecd6Srealqhc; CHECK-LABEL: slet:
2256f0ecd6Srealqhc; CHECK:       # %bb.0:
239d9d2b47SCraig Topper; CHECK-NEXT:    cv.sle a0, a0, a1
2456f0ecd6Srealqhc; CHECK-NEXT:    ret
2556f0ecd6Srealqhc  %1 = icmp sle i32 %a, %b
2656f0ecd6Srealqhc  ret i1 %1
2756f0ecd6Srealqhc}
2856f0ecd6Srealqhc
2956f0ecd6Srealqhcdefine i1 @sletu(i32 %a, i32 %b) {
3056f0ecd6Srealqhc; CHECK-LABEL: sletu:
3156f0ecd6Srealqhc; CHECK:       # %bb.0:
329d9d2b47SCraig Topper; CHECK-NEXT:    cv.sleu a0, a0, a1
3356f0ecd6Srealqhc; CHECK-NEXT:    ret
3456f0ecd6Srealqhc  %1 = icmp ule i32 %a, %b
3556f0ecd6Srealqhc  ret i1 %1
3656f0ecd6Srealqhc}
3756f0ecd6Srealqhc
3856f0ecd6Srealqhcdefine i32 @smin(i32 %a, i32 %b) {
3956f0ecd6Srealqhc; CHECK-LABEL: smin:
4056f0ecd6Srealqhc; CHECK:       # %bb.0:
4156f0ecd6Srealqhc; CHECK-NEXT:    cv.min a0, a0, a1
4256f0ecd6Srealqhc; CHECK-NEXT:    ret
4356f0ecd6Srealqhc  %1 = call i32 @llvm.smin.i32(i32 %a, i32 %b)
4456f0ecd6Srealqhc  ret i32 %1
4556f0ecd6Srealqhc}
4656f0ecd6Srealqhc
4756f0ecd6Srealqhcdefine i32 @umin(i32 %a, i32 %b) {
4856f0ecd6Srealqhc; CHECK-LABEL: umin:
4956f0ecd6Srealqhc; CHECK:       # %bb.0:
5056f0ecd6Srealqhc; CHECK-NEXT:    cv.minu a0, a0, a1
5156f0ecd6Srealqhc; CHECK-NEXT:    ret
5256f0ecd6Srealqhc  %1 = call i32 @llvm.umin.i32(i32 %a, i32 %b)
5356f0ecd6Srealqhc  ret i32 %1
5456f0ecd6Srealqhc}
5556f0ecd6Srealqhc
5656f0ecd6Srealqhcdefine i32 @smax(i32 %a, i32 %b) {
5756f0ecd6Srealqhc; CHECK-LABEL: smax:
5856f0ecd6Srealqhc; CHECK:       # %bb.0:
5956f0ecd6Srealqhc; CHECK-NEXT:    cv.max a0, a0, a1
6056f0ecd6Srealqhc; CHECK-NEXT:    ret
6156f0ecd6Srealqhc  %1 = call i32 @llvm.smax.i32(i32 %a, i32 %b)
6256f0ecd6Srealqhc  ret i32 %1
6356f0ecd6Srealqhc}
6456f0ecd6Srealqhc
6556f0ecd6Srealqhcdefine i32 @umax(i32 %a, i32 %b) {
6656f0ecd6Srealqhc; CHECK-LABEL: umax:
6756f0ecd6Srealqhc; CHECK:       # %bb.0:
6856f0ecd6Srealqhc; CHECK-NEXT:    cv.maxu a0, a0, a1
6956f0ecd6Srealqhc; CHECK-NEXT:    ret
7056f0ecd6Srealqhc  %1 = call i32 @llvm.umax.i32(i32 %a, i32 %b)
7156f0ecd6Srealqhc  ret i32 %1
7256f0ecd6Srealqhc}
7356f0ecd6Srealqhc
7456f0ecd6Srealqhcdefine i32 @exths(i16 %a) {
7556f0ecd6Srealqhc; CHECK-LABEL: exths:
7656f0ecd6Srealqhc; CHECK:       # %bb.0:
7756f0ecd6Srealqhc; CHECK-NEXT:    # kill: def $x11 killed $x10
7856f0ecd6Srealqhc; CHECK-NEXT:    cv.exths a0, a0
7956f0ecd6Srealqhc; CHECK-NEXT:    ret
8056f0ecd6Srealqhc  %1 = sext i16 %a to i32
8156f0ecd6Srealqhc  ret i32 %1
8256f0ecd6Srealqhc}
8356f0ecd6Srealqhc
8456f0ecd6Srealqhcdefine i32 @exthz(i16 %a) {
8556f0ecd6Srealqhc; CHECK-LABEL: exthz:
8656f0ecd6Srealqhc; CHECK:       # %bb.0:
8756f0ecd6Srealqhc; CHECK-NEXT:    # kill: def $x11 killed $x10
8856f0ecd6Srealqhc; CHECK-NEXT:    cv.exthz a0, a0
8956f0ecd6Srealqhc; CHECK-NEXT:    ret
9056f0ecd6Srealqhc  %1 = zext i16 %a to i32
9156f0ecd6Srealqhc  ret i32 %1
9256f0ecd6Srealqhc}
9356f0ecd6Srealqhc
94*00128a20Srealqhcdefine i32 @extbs(i8 %a) {
95*00128a20Srealqhc; CHECK-LABEL: extbs:
96*00128a20Srealqhc; CHECK:       # %bb.0:
97*00128a20Srealqhc; CHECK-NEXT:    # kill: def $x11 killed $x10
98*00128a20Srealqhc; CHECK-NEXT:    cv.extbs a0, a0
99*00128a20Srealqhc; CHECK-NEXT:    ret
100*00128a20Srealqhc  %1 = sext i8 %a to i32
101*00128a20Srealqhc  ret i32 %1
102*00128a20Srealqhc}
103*00128a20Srealqhc
104*00128a20Srealqhcdefine i32 @extbz(i8 %a) {
105*00128a20Srealqhc; CHECK-LABEL: extbz:
106*00128a20Srealqhc; CHECK:       # %bb.0:
107*00128a20Srealqhc; CHECK-NEXT:    # kill: def $x11 killed $x10
108*00128a20Srealqhc; CHECK-NEXT:    cv.extbz a0, a0
109*00128a20Srealqhc; CHECK-NEXT:    ret
110*00128a20Srealqhc  %1 = zext i8 %a to i32
111*00128a20Srealqhc  ret i32 %1
112*00128a20Srealqhc}
113*00128a20Srealqhc
11456f0ecd6Srealqhcdeclare i32 @llvm.riscv.cv.alu.clip(i32, i32)
11556f0ecd6Srealqhc
11656f0ecd6Srealqhcdefine i32 @test.cv.alu.clip.case.a(i32 %a) {
11756f0ecd6Srealqhc; CHECK-LABEL: test.cv.alu.clip.case.a:
11856f0ecd6Srealqhc; CHECK:       # %bb.0:
11956f0ecd6Srealqhc; CHECK-NEXT:    cv.clip a0, a0, 5
12056f0ecd6Srealqhc; CHECK-NEXT:    ret
12156f0ecd6Srealqhc  %1 = call i32 @llvm.riscv.cv.alu.clip(i32 %a, i32 15)
12256f0ecd6Srealqhc  ret i32 %1
12356f0ecd6Srealqhc}
12456f0ecd6Srealqhc
12556f0ecd6Srealqhcdefine i32 @test.cv.alu.clip.case.b(i32 %a) {
12656f0ecd6Srealqhc; CHECK-LABEL: test.cv.alu.clip.case.b:
12756f0ecd6Srealqhc; CHECK:       # %bb.0:
12856f0ecd6Srealqhc; CHECK-NEXT:    li a1, 10
12956f0ecd6Srealqhc; CHECK-NEXT:    cv.clipr a0, a0, a1
13056f0ecd6Srealqhc; CHECK-NEXT:    ret
13156f0ecd6Srealqhc  %1 = call i32 @llvm.riscv.cv.alu.clip(i32 %a, i32 10)
13256f0ecd6Srealqhc  ret i32 %1
13356f0ecd6Srealqhc}
13456f0ecd6Srealqhc
13556f0ecd6Srealqhcdeclare i32 @llvm.riscv.cv.alu.clipu(i32, i32)
13656f0ecd6Srealqhc
13756f0ecd6Srealqhcdefine i32 @test.cv.alu.clipu.case.a(i32 %a) {
13856f0ecd6Srealqhc; CHECK-LABEL: test.cv.alu.clipu.case.a:
13956f0ecd6Srealqhc; CHECK:       # %bb.0:
14056f0ecd6Srealqhc; CHECK-NEXT:    cv.clipu a0, a0, 9
14156f0ecd6Srealqhc; CHECK-NEXT:    ret
14256f0ecd6Srealqhc  %1 = call i32 @llvm.riscv.cv.alu.clipu(i32 %a, i32 255)
14356f0ecd6Srealqhc  ret i32 %1
14456f0ecd6Srealqhc}
14556f0ecd6Srealqhc
14656f0ecd6Srealqhcdefine i32 @test.cv.alu.clipu.case.b(i32 %a) {
14756f0ecd6Srealqhc; CHECK-LABEL: test.cv.alu.clipu.case.b:
14856f0ecd6Srealqhc; CHECK:       # %bb.0:
14956f0ecd6Srealqhc; CHECK-NEXT:    li a1, 200
15056f0ecd6Srealqhc; CHECK-NEXT:    cv.clipur a0, a0, a1
15156f0ecd6Srealqhc; CHECK-NEXT:    ret
15256f0ecd6Srealqhc  %1 = call i32 @llvm.riscv.cv.alu.clipu(i32 %a, i32 200)
15356f0ecd6Srealqhc  ret i32 %1
15456f0ecd6Srealqhc}
15556f0ecd6Srealqhc
156*00128a20Srealqhcdeclare i32 @llvm.riscv.cv.alu.addN(i32, i32, i32)
15756f0ecd6Srealqhc
158*00128a20Srealqhcdefine i32 @test.cv.alu.addN.case.a(i32 %a, i32 %b) {
159*00128a20Srealqhc; CHECK-LABEL: test.cv.alu.addN.case.a:
16056f0ecd6Srealqhc; CHECK:       # %bb.0:
16156f0ecd6Srealqhc; CHECK-NEXT:    cv.addn a0, a0, a1, 15
16256f0ecd6Srealqhc; CHECK-NEXT:    ret
163*00128a20Srealqhc  %1 = call i32 @llvm.riscv.cv.alu.addN(i32 %a, i32 %b, i32 15)
16456f0ecd6Srealqhc  ret i32 %1
16556f0ecd6Srealqhc}
16656f0ecd6Srealqhc
167*00128a20Srealqhcdefine i32 @test.cv.alu.addN.case.b(i32 %a, i32 %b) {
168*00128a20Srealqhc; CHECK-LABEL: test.cv.alu.addN.case.b:
16956f0ecd6Srealqhc; CHECK:       # %bb.0:
17056f0ecd6Srealqhc; CHECK-NEXT:    li a2, 32
17156f0ecd6Srealqhc; CHECK-NEXT:    cv.addnr a0, a1, a2
17256f0ecd6Srealqhc; CHECK-NEXT:    ret
173*00128a20Srealqhc  %1 = call i32 @llvm.riscv.cv.alu.addN(i32 %a, i32 %b, i32 32)
17456f0ecd6Srealqhc  ret i32 %1
17556f0ecd6Srealqhc}
17656f0ecd6Srealqhc
177*00128a20Srealqhcdeclare i32 @llvm.riscv.cv.alu.adduN(i32, i32, i32)
17856f0ecd6Srealqhc
179*00128a20Srealqhcdefine i32 @test.cv.alu.adduN.case.a(i32 %a, i32 %b) {
180*00128a20Srealqhc; CHECK-LABEL: test.cv.alu.adduN.case.a:
18156f0ecd6Srealqhc; CHECK:       # %bb.0:
18256f0ecd6Srealqhc; CHECK-NEXT:    cv.addun a0, a0, a1, 15
18356f0ecd6Srealqhc; CHECK-NEXT:    ret
184*00128a20Srealqhc  %1 = call i32 @llvm.riscv.cv.alu.adduN(i32 %a, i32 %b, i32 15)
18556f0ecd6Srealqhc  ret i32 %1
18656f0ecd6Srealqhc}
18756f0ecd6Srealqhc
188*00128a20Srealqhcdefine i32 @test.cv.alu.adduN.case.b(i32 %a, i32 %b) {
189*00128a20Srealqhc; CHECK-LABEL: test.cv.alu.adduN.case.b:
19056f0ecd6Srealqhc; CHECK:       # %bb.0:
19156f0ecd6Srealqhc; CHECK-NEXT:    li a2, 32
19256f0ecd6Srealqhc; CHECK-NEXT:    cv.addunr a0, a1, a2
19356f0ecd6Srealqhc; CHECK-NEXT:    ret
194*00128a20Srealqhc  %1 = call i32 @llvm.riscv.cv.alu.adduN(i32 %a, i32 %b, i32 32)
19556f0ecd6Srealqhc  ret i32 %1
19656f0ecd6Srealqhc}
19756f0ecd6Srealqhc
198*00128a20Srealqhcdeclare i32 @llvm.riscv.cv.alu.addRN(i32, i32, i32)
19956f0ecd6Srealqhc
200*00128a20Srealqhcdefine i32 @test.cv.alu.addRN.case.a(i32 %a, i32 %b) {
201*00128a20Srealqhc; CHECK-LABEL: test.cv.alu.addRN.case.a:
20256f0ecd6Srealqhc; CHECK:       # %bb.0:
20356f0ecd6Srealqhc; CHECK-NEXT:    cv.addrn a0, a0, a1, 15
20456f0ecd6Srealqhc; CHECK-NEXT:    ret
205*00128a20Srealqhc  %1 = call i32 @llvm.riscv.cv.alu.addRN(i32 %a, i32 %b, i32 15)
20656f0ecd6Srealqhc  ret i32 %1
20756f0ecd6Srealqhc}
20856f0ecd6Srealqhc
209*00128a20Srealqhcdefine i32 @test.cv.alu.addRN.case.b(i32 %a, i32 %b) {
210*00128a20Srealqhc; CHECK-LABEL: test.cv.alu.addRN.case.b:
21156f0ecd6Srealqhc; CHECK:       # %bb.0:
21256f0ecd6Srealqhc; CHECK-NEXT:    li a2, 32
21356f0ecd6Srealqhc; CHECK-NEXT:    cv.addrnr a0, a1, a2
21456f0ecd6Srealqhc; CHECK-NEXT:    ret
215*00128a20Srealqhc  %1 = call i32 @llvm.riscv.cv.alu.addRN(i32 %a, i32 %b, i32 32)
21656f0ecd6Srealqhc  ret i32 %1
21756f0ecd6Srealqhc}
21856f0ecd6Srealqhc
219*00128a20Srealqhcdeclare i32 @llvm.riscv.cv.alu.adduRN(i32, i32, i32)
22056f0ecd6Srealqhc
221*00128a20Srealqhcdefine i32 @test.cv.alu.adduRN.case.a(i32 %a, i32 %b) {
222*00128a20Srealqhc; CHECK-LABEL: test.cv.alu.adduRN.case.a:
22356f0ecd6Srealqhc; CHECK:       # %bb.0:
22456f0ecd6Srealqhc; CHECK-NEXT:    cv.addurn a0, a0, a1, 15
22556f0ecd6Srealqhc; CHECK-NEXT:    ret
226*00128a20Srealqhc  %1 = call i32 @llvm.riscv.cv.alu.adduRN(i32 %a, i32 %b, i32 15)
22756f0ecd6Srealqhc  ret i32 %1
22856f0ecd6Srealqhc}
22956f0ecd6Srealqhc
230*00128a20Srealqhcdefine i32 @test.cv.alu.adduRN.case.b(i32 %a, i32 %b) {
231*00128a20Srealqhc; CHECK-LABEL: test.cv.alu.adduRN.case.b:
23256f0ecd6Srealqhc; CHECK:       # %bb.0:
23356f0ecd6Srealqhc; CHECK-NEXT:    li a2, 32
23456f0ecd6Srealqhc; CHECK-NEXT:    cv.addurnr a0, a1, a2
23556f0ecd6Srealqhc; CHECK-NEXT:    ret
236*00128a20Srealqhc  %1 = call i32 @llvm.riscv.cv.alu.adduRN(i32 %a, i32 %b, i32 32)
23756f0ecd6Srealqhc  ret i32 %1
23856f0ecd6Srealqhc}
23956f0ecd6Srealqhc
240*00128a20Srealqhcdeclare i32 @llvm.riscv.cv.alu.subN(i32, i32, i32)
24156f0ecd6Srealqhc
242*00128a20Srealqhcdefine i32 @test.cv.alu.subN.case.a(i32 %a, i32 %b) {
243*00128a20Srealqhc; CHECK-LABEL: test.cv.alu.subN.case.a:
24456f0ecd6Srealqhc; CHECK:       # %bb.0:
24556f0ecd6Srealqhc; CHECK-NEXT:    cv.subn a0, a0, a1, 15
24656f0ecd6Srealqhc; CHECK-NEXT:    ret
247*00128a20Srealqhc  %1 = call i32 @llvm.riscv.cv.alu.subN(i32 %a, i32 %b, i32 15)
24856f0ecd6Srealqhc  ret i32 %1
24956f0ecd6Srealqhc}
25056f0ecd6Srealqhc
251*00128a20Srealqhcdefine i32 @test.cv.alu.subN.case.b(i32 %a, i32 %b) {
252*00128a20Srealqhc; CHECK-LABEL: test.cv.alu.subN.case.b:
25356f0ecd6Srealqhc; CHECK:       # %bb.0:
25456f0ecd6Srealqhc; CHECK-NEXT:    li a2, 32
25556f0ecd6Srealqhc; CHECK-NEXT:    cv.subnr a0, a1, a2
25656f0ecd6Srealqhc; CHECK-NEXT:    ret
257*00128a20Srealqhc  %1 = call i32 @llvm.riscv.cv.alu.subN(i32 %a, i32 %b, i32 32)
25856f0ecd6Srealqhc  ret i32 %1
25956f0ecd6Srealqhc}
26056f0ecd6Srealqhc
261*00128a20Srealqhcdeclare i32 @llvm.riscv.cv.alu.subuN(i32, i32, i32)
26256f0ecd6Srealqhc
263*00128a20Srealqhcdefine i32 @test.cv.alu.subuN.case.a(i32 %a, i32 %b) {
264*00128a20Srealqhc; CHECK-LABEL: test.cv.alu.subuN.case.a:
26556f0ecd6Srealqhc; CHECK:       # %bb.0:
26656f0ecd6Srealqhc; CHECK-NEXT:    cv.subun a0, a0, a1, 15
26756f0ecd6Srealqhc; CHECK-NEXT:    ret
268*00128a20Srealqhc  %1 = call i32 @llvm.riscv.cv.alu.subuN(i32 %a, i32 %b, i32 15)
26956f0ecd6Srealqhc  ret i32 %1
27056f0ecd6Srealqhc}
27156f0ecd6Srealqhc
272*00128a20Srealqhcdefine i32 @test.cv.alu.subuN.case.b(i32 %a, i32 %b) {
273*00128a20Srealqhc; CHECK-LABEL: test.cv.alu.subuN.case.b:
27456f0ecd6Srealqhc; CHECK:       # %bb.0:
27556f0ecd6Srealqhc; CHECK-NEXT:    li a2, 32
27656f0ecd6Srealqhc; CHECK-NEXT:    cv.subunr a0, a1, a2
27756f0ecd6Srealqhc; CHECK-NEXT:    ret
278*00128a20Srealqhc  %1 = call i32 @llvm.riscv.cv.alu.subuN(i32 %a, i32 %b, i32 32)
27956f0ecd6Srealqhc  ret i32 %1
28056f0ecd6Srealqhc}
28156f0ecd6Srealqhc
282*00128a20Srealqhcdeclare i32 @llvm.riscv.cv.alu.subRN(i32, i32, i32)
28356f0ecd6Srealqhc
284*00128a20Srealqhcdefine i32 @test.cv.alu.subRN.case.a(i32 %a, i32 %b) {
285*00128a20Srealqhc; CHECK-LABEL: test.cv.alu.subRN.case.a:
28656f0ecd6Srealqhc; CHECK:       # %bb.0:
28756f0ecd6Srealqhc; CHECK-NEXT:    cv.subrn a0, a0, a1, 15
28856f0ecd6Srealqhc; CHECK-NEXT:    ret
289*00128a20Srealqhc  %1 = call i32 @llvm.riscv.cv.alu.subRN(i32 %a, i32 %b, i32 15)
29056f0ecd6Srealqhc  ret i32 %1
29156f0ecd6Srealqhc}
29256f0ecd6Srealqhc
293*00128a20Srealqhcdefine i32 @test.cv.alu.subRN.case.b(i32 %a, i32 %b) {
294*00128a20Srealqhc; CHECK-LABEL: test.cv.alu.subRN.case.b:
29556f0ecd6Srealqhc; CHECK:       # %bb.0:
29656f0ecd6Srealqhc; CHECK-NEXT:    li a2, 32
29756f0ecd6Srealqhc; CHECK-NEXT:    cv.subrnr a0, a1, a2
29856f0ecd6Srealqhc; CHECK-NEXT:    ret
299*00128a20Srealqhc  %1 = call i32 @llvm.riscv.cv.alu.subRN(i32 %a, i32 %b, i32 32)
30056f0ecd6Srealqhc  ret i32 %1
30156f0ecd6Srealqhc}
30256f0ecd6Srealqhc
303*00128a20Srealqhcdeclare i32 @llvm.riscv.cv.alu.subuRN(i32, i32, i32)
30456f0ecd6Srealqhc
305*00128a20Srealqhcdefine i32 @test.cv.alu.subuRN.case.a(i32 %a, i32 %b) {
306*00128a20Srealqhc; CHECK-LABEL: test.cv.alu.subuRN.case.a:
30756f0ecd6Srealqhc; CHECK:       # %bb.0:
30856f0ecd6Srealqhc; CHECK-NEXT:    cv.suburn a0, a0, a1, 15
30956f0ecd6Srealqhc; CHECK-NEXT:    ret
310*00128a20Srealqhc  %1 = call i32 @llvm.riscv.cv.alu.subuRN(i32 %a, i32 %b, i32 15)
31156f0ecd6Srealqhc  ret i32 %1
31256f0ecd6Srealqhc}
31356f0ecd6Srealqhc
314*00128a20Srealqhcdefine i32 @test.cv.alu.subuRN.case.b(i32 %a, i32 %b) {
315*00128a20Srealqhc; CHECK-LABEL: test.cv.alu.subuRN.case.b:
31656f0ecd6Srealqhc; CHECK:       # %bb.0:
31756f0ecd6Srealqhc; CHECK-NEXT:    li a2, 32
31856f0ecd6Srealqhc; CHECK-NEXT:    cv.suburnr a0, a1, a2
31956f0ecd6Srealqhc; CHECK-NEXT:    ret
320*00128a20Srealqhc  %1 = call i32 @llvm.riscv.cv.alu.subuRN(i32 %a, i32 %b, i32 32)
32156f0ecd6Srealqhc  ret i32 %1
32256f0ecd6Srealqhc}
323