1 <!-- This defines instructions described in PowerISA Version 3.0 B Book 1 -->
3 <!-- These are not described in book 1 -->
9 * setvl RT, RA, SVi, vf, vs, ms
10 * setvl. RT, RA, SVi, vf, vs, ms
14 if (vf & (¬vs) & ¬(ms)) = 1 then
33 if _RT != 0b00000 then
34 GPR(_RT) <- [0]*57 || VL
37 Special Registers Altered:
45 * svremap SVxd, SVyd, SVzd, SVRM
49 # clear out all SVSHAPEs
50 SVSHAPE0[0:31] <- [0] * 32
51 SVSHAPE1[0:31] <- [0] * 32
52 SVSHAPE2[0:31] <- [0] * 32
53 SVSHAPE3[0:31] <- [0] * 32
54 # set schedule up for multiply
55 if (SVRM = 0b00000) then
56 # set up template in SVSHAPE0, then copy to 1-3
57 SVSHAPE0[0:5] <- (0b0 || SVxd) # xdim
58 SVSHAPE0[6:11] <- (0b0 || SVyd) # ydim
59 SVSHAPE0[12:17] <- (0b0 || SVzd) # zdim
60 SVSHAPE0[28:29] <- 0b11 # skip z
62 SVSHAPE1[0:31] <- SVSHAPE0[0:31]
63 SVSHAPE2[0:31] <- SVSHAPE0[0:31]
64 SVSHAPE3[0:31] <- SVSHAPE0[0:31]
66 SVSHAPE1[18:20] <- 0b001 # permute x,z,y
67 SVSHAPE1[28:29] <- 0b01 # skip z
69 SVSHAPE2[18:20] <- 0b001 # permute x,z,y
70 SVSHAPE2[28:29] <- 0b11 # skip y
71 # set schedule up for butterfly
72 if (SVRM = 0b00001) then
73 # set up template in SVSHAPE0, then copy to 1-3
75 SVSHAPE0[0:5] <- (0b0 || SVxd) # xdim
76 SVSHAPE0[30:31] <- 0b01 # Butterfly mode
78 SVSHAPE1[0:31] <- SVSHAPE0[0:31]
79 SVSHAPE2[0:31] <- SVSHAPE0[0:31]
81 SVSHAPE1[28:29] <- 0b01 # j+halfstep schedule
83 SVSHAPE2[28:29] <- 0b10 # k schedule
85 Special Registers Altered: